Merge remote-tracking branch 'cd/master'
This commit is contained in:
commit
2eb8bcf9d1
|
@ -8,6 +8,12 @@ let
|
||||||
"${user-name}/1systems/${system-name}.nix"
|
"${user-name}/1systems/${system-name}.nix"
|
||||||
"${user-name}/3modules"
|
"${user-name}/3modules"
|
||||||
"krebs/3modules"
|
"krebs/3modules"
|
||||||
|
] ++ [
|
||||||
|
({ lib, pkgs, ... }: {
|
||||||
|
_module.args.pkgs =
|
||||||
|
(import ./krebs/5pkgs { inherit lib pkgs; }) //
|
||||||
|
(import (./. + "/${user-name}/5pkgs") { inherit lib pkgs; });
|
||||||
|
})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -272,6 +272,7 @@ let
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
secure = true;
|
||||||
};
|
};
|
||||||
mors = {
|
mors = {
|
||||||
cores = 2;
|
cores = 2;
|
||||||
|
@ -302,12 +303,12 @@ let
|
||||||
};
|
};
|
||||||
users = addNames {
|
users = addNames {
|
||||||
lass = {
|
lass = {
|
||||||
pubkey = readFile ../../Zpubkeys/lass.ssh.pub;
|
pubkey = readFile ../Zpubkeys/lass.ssh.pub;
|
||||||
mail = "lass@mors.retiolum";
|
mail = "lass@mors.retiolum";
|
||||||
};
|
};
|
||||||
uriel = {
|
uriel = {
|
||||||
pubkey = readFile ../../Zpubkeys/uriel.ssh.pub;
|
pubkey = readFile ../Zpubkeys/uriel.ssh.pub;
|
||||||
mail = "uriel@mors.retiolum";
|
mail = "lass@uriel.retiolum";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -513,7 +514,7 @@ let
|
||||||
users = addNames {
|
users = addNames {
|
||||||
makefu = {
|
makefu = {
|
||||||
mail = "makefu@pornocauster.retiolum";
|
mail = "makefu@pornocauster.retiolum";
|
||||||
pubkey = readFile ../../Zpubkeys/makefu_arch.ssh.pub;
|
pubkey = readFile ../Zpubkeys/makefu_arch.ssh.pub;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -684,11 +685,11 @@ let
|
||||||
users = addNames {
|
users = addNames {
|
||||||
mv = {
|
mv = {
|
||||||
mail = "mv@cd.retiolum";
|
mail = "mv@cd.retiolum";
|
||||||
pubkey = readFile ../../Zpubkeys/mv_vod.ssh.pub;
|
pubkey = readFile ../Zpubkeys/mv_vod.ssh.pub;
|
||||||
};
|
};
|
||||||
tv = {
|
tv = {
|
||||||
mail = "tv@wu.retiolum";
|
mail = "tv@wu.retiolum";
|
||||||
pubkey = readFile ../../Zpubkeys/tv_wu.ssh.pub;
|
pubkey = readFile ../Zpubkeys/tv_wu.ssh.pub;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -61,9 +61,9 @@ let
|
||||||
${cfg.ssh-identity-file} \
|
${cfg.ssh-identity-file} \
|
||||||
"$ssh_identity_file_target"
|
"$ssh_identity_file_target"
|
||||||
|
|
||||||
ln -snf ${kpkgs.github-known_hosts} ${cfg.dataDir}/.ssh/known_hosts
|
ln -snf ${pkgs.github-known_hosts} ${cfg.dataDir}/.ssh/known_hosts
|
||||||
'';
|
'';
|
||||||
ExecStart = "${kpkgs.github-hosts-sync}/bin/github-hosts-sync";
|
ExecStart = "${pkgs.github-hosts-sync}/bin/github-hosts-sync";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -77,7 +77,5 @@ let
|
||||||
name = "github-hosts-sync";
|
name = "github-hosts-sync";
|
||||||
uid = 3220554646; # genid github-hosts-sync
|
uid = 3220554646; # genid github-hosts-sync
|
||||||
};
|
};
|
||||||
|
|
||||||
kpkgs = import ../../krebs/5pkgs { inherit pkgs; };
|
|
||||||
in
|
in
|
||||||
out
|
out
|
||||||
|
|
|
@ -58,7 +58,7 @@ let
|
||||||
|
|
||||||
hosts = mkOption {
|
hosts = mkOption {
|
||||||
type = with types; either package path;
|
type = with types; either package path;
|
||||||
default = ../../Zhosts;
|
default = ../Zhosts;
|
||||||
description = ''
|
description = ''
|
||||||
If a path is given, then it will be used to generate an ad-hoc package.
|
If a path is given, then it will be used to generate an ad-hoc package.
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -14,5 +14,12 @@ builtins // lib // rec {
|
||||||
|
|
||||||
dns = import ./dns.nix { inherit lib; };
|
dns = import ./dns.nix { inherit lib; };
|
||||||
listset = import ./listset.nix { inherit lib; };
|
listset = import ./listset.nix { inherit lib; };
|
||||||
|
shell = import ./shell.nix { inherit lib; };
|
||||||
tree = import ./tree.nix { inherit lib; };
|
tree = import ./tree.nix { inherit lib; };
|
||||||
|
|
||||||
|
toC = x: {
|
||||||
|
list = "{ ${concatStringsSep ", " (map toC x)} }";
|
||||||
|
null = "NULL";
|
||||||
|
string = toJSON x; # close enough
|
||||||
|
}.${typeOf x};
|
||||||
}
|
}
|
||||||
|
|
22
krebs/4lib/shell.nix
Normal file
22
krebs/4lib/shell.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
with builtins;
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
rec {
|
||||||
|
escape =
|
||||||
|
let
|
||||||
|
isSafeChar = c: match "[-./0-9_a-zA-Z]" c != null;
|
||||||
|
in
|
||||||
|
stringAsChars (c:
|
||||||
|
if isSafeChar c then c
|
||||||
|
else if c == "\n" then "'\n'"
|
||||||
|
else "\\${c}");
|
||||||
|
|
||||||
|
#
|
||||||
|
# shell script generators
|
||||||
|
#
|
||||||
|
|
||||||
|
# example: "${cat (toJSON { foo = "bar"; })} | jq -r .foo"
|
||||||
|
cat = s: "printf '%s' ${escape s}";
|
||||||
|
}
|
|
@ -1,16 +1,52 @@
|
||||||
{ pkgs, ... }:
|
{ lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with import ../4lib { inherit lib; };
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (pkgs) callPackage;
|
inherit (pkgs) callPackage;
|
||||||
in
|
in
|
||||||
|
|
||||||
pkgs //
|
rec {
|
||||||
{
|
cac = callPackage ./cac {};
|
||||||
cac = callPackage ./cac.nix {};
|
charybdis = callPackage ./charybdis {};
|
||||||
dic = callPackage ./dic.nix {};
|
dic = callPackage ./dic {};
|
||||||
genid = callPackage ./genid.nix {};
|
genid = callPackage ./genid {};
|
||||||
github-hosts-sync = callPackage ./github-hosts-sync.nix {};
|
github-hosts-sync = callPackage ./github-hosts-sync {};
|
||||||
github-known_hosts = callPackage ./github-known_hosts.nix {};
|
github-known_hosts = callPackage ./github-known_hosts {};
|
||||||
hashPassword = callPackage ./hashPassword.nix {};
|
hashPassword = callPackage ./hashPassword {};
|
||||||
posix-array = callPackage ./posix-array.nix {};
|
lentil = callPackage ./lentil {};
|
||||||
|
much = callPackage ./much {};
|
||||||
|
nq = callPackage ./nq {};
|
||||||
|
posix-array = callPackage ./posix-array {};
|
||||||
|
pssh = callPackage ./pssh {};
|
||||||
|
youtube-tools = callPackage ./youtube-tools {};
|
||||||
|
|
||||||
|
execve = name: { filename, argv, envp ? {}, destination ? "" }:
|
||||||
|
writeC name { inherit destination; } ''
|
||||||
|
#include <unistd.h>
|
||||||
|
int main () {
|
||||||
|
const char *filename = ${toC filename};
|
||||||
|
char *const argv[] = ${toC (argv ++ [null])};
|
||||||
|
char *const envp[] = ${toC (
|
||||||
|
mapAttrsToList (k: v: "${k}=${v}") envp ++ [null]
|
||||||
|
)};
|
||||||
|
execve(filename, argv, envp);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
execveBin = name: cfg: execve name (cfg // { destination = "/bin/${name}"; });
|
||||||
|
|
||||||
|
writeC = name: { destination ? "" }: src: pkgs.runCommand name {} ''
|
||||||
|
PATH=${lib.makeSearchPath "bin" (with pkgs; [
|
||||||
|
binutils
|
||||||
|
coreutils
|
||||||
|
gcc
|
||||||
|
])}
|
||||||
|
src=${pkgs.writeText "${name}.c" src}
|
||||||
|
exe=$out${destination}
|
||||||
|
mkdir -p "$(dirname "$exe")"
|
||||||
|
gcc -O -Wall -o "$exe" $src
|
||||||
|
strip --strip-unneeded "$exe"
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ with builtins;
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
github-pubkey = removeSuffix "\n" (readFile ../../Zpubkeys/github.ssh.pub);
|
github-pubkey = removeSuffix "\n" (readFile ./github.ssh.pub);
|
||||||
in
|
in
|
||||||
|
|
||||||
toFile "github-known_hosts"
|
toFile "github-known_hosts"
|
16
krebs/5pkgs/nq/default.nix
Normal file
16
krebs/5pkgs/nq/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ fetchgit, stdenv }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "nq-${rev}";
|
||||||
|
rev = "0eae839cb1";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = https://github.com/chneukirchen/nq;
|
||||||
|
inherit rev;
|
||||||
|
sha256 = "1150274750cde934932d65bd6053d7a0ba2404a59eadfb87fc6bd8a4fb70febb";
|
||||||
|
};
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
sed -i "s:^PREFIX=.*:PREFIX=$out:" Makefile
|
||||||
|
'';
|
||||||
|
}
|
37
krebs/5pkgs/pssh/default.nix
Normal file
37
krebs/5pkgs/pssh/default.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{ writeScriptBin }:
|
||||||
|
|
||||||
|
writeScriptBin "pssh" ''
|
||||||
|
#! /bin/sh
|
||||||
|
set -efu
|
||||||
|
case ''${1-} in
|
||||||
|
|
||||||
|
# TODO create plog with -o json | jq ... | map date
|
||||||
|
|
||||||
|
# usage: pssh {-j,--journal} host...
|
||||||
|
# Follow journal at each host.
|
||||||
|
-j|--journal)
|
||||||
|
shift
|
||||||
|
"$0" journalctl -n0 -ocat --follow --all ::: "$@" \
|
||||||
|
| while read line; do
|
||||||
|
printf '%s %s\n' "$(date --rfc-3339=s)" "$line"
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
|
||||||
|
-*)
|
||||||
|
echo $0: unknown option: $1 >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
# usage: pssh command [arg...] ::: host...
|
||||||
|
# Run command at each host.
|
||||||
|
*)
|
||||||
|
exec parallel \
|
||||||
|
--line-buffer \
|
||||||
|
-j0 \
|
||||||
|
--no-notice \
|
||||||
|
--tagstring {} \
|
||||||
|
ssh -T {} "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
''
|
21
krebs/5pkgs/youtube-tools/default.nix
Normal file
21
krebs/5pkgs/youtube-tools/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{ stdenv, fetchgit, ... }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "youtube-tools";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = https://github.com/Lassulus/the_playlist;
|
||||||
|
rev = "9218b163f2d8bc965b853ed9fc9e13d15a703456";
|
||||||
|
sha256 = "ae5db4be652d015a518e57e4ed2de34b9127e77d9272af3049832bb134e96e4d";
|
||||||
|
};
|
||||||
|
|
||||||
|
phases = [
|
||||||
|
"unpackPhase"
|
||||||
|
"installPhase"
|
||||||
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp bin/* $out/bin/
|
||||||
|
'';
|
||||||
|
}
|
|
@ -1,4 +1,5 @@
|
||||||
Subnet = 10.243.211.172
|
Subnet = 10.243.211.172
|
||||||
|
Subnet = 10.243.211.172 53
|
||||||
Subnet = 42:472a:3d01:bbe4:4425:567e:592b:065d
|
Subnet = 42:472a:3d01:bbe4:4425:567e:592b:065d
|
||||||
|
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
-----BEGIN RSA PUBLIC KEY-----
|
|
@ -1,4 +1,5 @@
|
||||||
Address= 195.154.108.70
|
Address= 195.154.108.70
|
||||||
|
Address= 195.154.108.70 53
|
||||||
Subnet = 10.243.0.211
|
Subnet = 10.243.0.211
|
||||||
Subnet = 42:f9f0:0000:0000:0000:0000:0000:70d2
|
Subnet = 42:f9f0:0000:0000:0000:0000:0000:70d2
|
||||||
Aliases = paste
|
Aliases = paste
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue