summaryrefslogtreecommitdiffstats
path: root/krebs
diff options
context:
space:
mode:
Diffstat (limited to 'krebs')
-rw-r--r--krebs/4lib/default.nix6
-rw-r--r--krebs/5pkgs/default.nix27
-rw-r--r--krebs/5pkgs/push/default.nix48
3 files changed, 61 insertions, 20 deletions
diff --git a/krebs/4lib/default.nix b/krebs/4lib/default.nix
index ca7219c7e..78f719988 100644
--- a/krebs/4lib/default.nix
+++ b/krebs/4lib/default.nix
@@ -5,6 +5,8 @@ with lib;
builtins // lib // rec {
+ eq = x: y: x == y;
+
addName = name: set:
set // { inherit name; };
@@ -22,4 +24,8 @@ builtins // lib // rec {
null = "NULL";
string = toJSON x; # close enough
}.${typeOf x};
+
+ subdirsOf = path:
+ mapAttrs (name: _: path + "/${name}")
+ (filterAttrs (_: eq "directory") (readDir path));
}
diff --git a/krebs/5pkgs/default.nix b/krebs/5pkgs/default.nix
index c48c3dee8..a8a1b5853 100644
--- a/krebs/5pkgs/default.nix
+++ b/krebs/5pkgs/default.nix
@@ -3,28 +3,15 @@
with import ../4lib { inherit lib; };
let
- inherit (pkgs) callPackage;
+ subdirs = mapAttrs (_: flip pkgs.callPackage {}) (subdirsOf ./.);
+ pkgs' = pkgs // subdirs;
in
-rec {
- cac = callPackage ./cac {};
- charybdis = callPackage ./charybdis {};
- dic = callPackage ./dic {};
- genid = callPackage ./genid {};
- get = callPackage ./get {};
- github-hosts-sync = callPackage ./github-hosts-sync {};
- hashPassword = callPackage ./hashPassword {};
- jq = callPackage ./jq {};
- krebszones = callPackage ./krebszones {};
- lentil = callPackage ./lentil {};
- much = callPackage ./much {};
- nq = callPackage ./nq {};
- posix-array = callPackage ./posix-array {};
- pssh = callPackage ./pssh {};
- passwdqc-utils = callPackage ./passwdqc-utils {};
- Reaktor = callPackage ./Reaktor {};
- realwallpaper = callPackage ./realwallpaper.nix {};
- youtube-tools = callPackage ./youtube-tools {};
+subdirs // rec {
+
+ push = pkgs'.callPackage ./push {
+ inherit (subdirs) get jq;
+ };
execve = name: { filename, argv, envp ? {}, destination ? "" }:
writeC name { inherit destination; } ''
diff --git a/krebs/5pkgs/push/default.nix b/krebs/5pkgs/push/default.nix
new file mode 100644
index 000000000..ce496d9c3
--- /dev/null
+++ b/krebs/5pkgs/push/default.nix
@@ -0,0 +1,48 @@
+{ fetchgit, lib, stdenv
+, coreutils
+, get
+, git
+, gnused
+, jq
+, openssh
+, parallel
+, ... }:
+
+stdenv.mkDerivation {
+ name = "push-1.0.0";
+
+ src = fetchgit {
+ url = http://cgit.cd.retiolum/push;
+ rev = "513da89fe50b3bad3d758855f5622c4508977e4a";
+ sha256 = "6124e1d4d4ef57455e2f06891e06fb01d3786846efaf9b79e3176d89988e1b4e";
+ };
+
+ phases = [
+ "unpackPhase"
+ "installPhase"
+ ];
+
+ installPhase =
+ let
+ path = lib.makeSearchPath "bin" [
+ coreutils
+ get
+ git
+ gnused
+ jq
+ openssh
+ parallel
+ ];
+ in
+ ''
+ mkdir -p $out/bin
+
+ sed \
+ '1s,.*,&\nPATH=${path},' \
+ < ./push \
+ > $out/bin/push
+
+ chmod +x $out/bin/push
+ '';
+}
+