summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2018-05-13 12:29:00 +0200
committerGregor Kleen <gkleen@yggdrasil.li>2018-05-13 12:29:00 +0200
commit002823adceee104f061a90f2c53f4dffeec73436 (patch)
treee7cbffb8275726ccd80ae33572f01740117f6b3d
parent03098e6f024260480ccd8002b9e20e70e05c11cf (diff)
downloadutils-002823adceee104f061a90f2c53f4dffeec73436.tar
utils-002823adceee104f061a90f2c53f4dffeec73436.tar.gz
utils-002823adceee104f061a90f2c53f4dffeec73436.tar.bz2
utils-002823adceee104f061a90f2c53f4dffeec73436.tar.xz
utils-002823adceee104f061a90f2c53f4dffeec73436.zip
recv
-rw-r--r--nix/default.nix1
-rw-r--r--nix/module.nix6
-rw-r--r--nix/recv.nix24
-rw-r--r--recv13
4 files changed, 44 insertions, 0 deletions
diff --git a/nix/default.nix b/nix/default.nix
index dc225a3..b872f6a 100644
--- a/nix/default.nix
+++ b/nix/default.nix
@@ -6,4 +6,5 @@ self: super:
6 pulseaudio-ctl = self.callPackage ./pulseaudio-ctl.nix {}; 6 pulseaudio-ctl = self.callPackage ./pulseaudio-ctl.nix {};
7 monitor-uucp = self.callPackage ./monitor-uucp.nix {}; 7 monitor-uucp = self.callPackage ./monitor-uucp.nix {};
8 rolling-directory = self.callPackage ./rolling-directory.nix {}; 8 rolling-directory = self.callPackage ./rolling-directory.nix {};
9 recv = self.callPackage ./recv.nix {};
9} 10}
diff --git a/nix/module.nix b/nix/module.nix
index edc9bfb..40082b1 100644
--- a/nix/module.nix
+++ b/nix/module.nix
@@ -45,11 +45,17 @@ in {
45 type = with types; listOf (submodule dirConfig); 45 type = with types; listOf (submodule dirConfig);
46 default = []; 46 default = [];
47 }; 47 };
48
49 programs.recv.enable = mkEnableOption "the ‘recv’ program";
48 }; 50 };
49 51
50 config = { 52 config = {
51 nixpkgs.overlays = [ (import ./default.nix) ]; 53 nixpkgs.overlays = [ (import ./default.nix) ];
52 54
53 systemd.services = listToAttrs (map dirService config.services.rollingDirectories); 55 systemd.services = listToAttrs (map dirService config.services.rollingDirectories);
56
57 security.wrappers = mkIf config.programs.recv.enable {
58 recv.source = "${pkgs.recv}/bin/recv";
59 };
54 }; 60 };
55} 61}
diff --git a/nix/recv.nix b/nix/recv.nix
new file mode 100644
index 0000000..6bdc559
--- /dev/null
+++ b/nix/recv.nix
@@ -0,0 +1,24 @@
1{ stdenv
2, zsh, gnutar
3}:
4
5stdenv.mkDerivation rec {
6 name = "recv-${version}";
7 version = "0.1";
8 src = ../recv;
9
10 phases = [ "buildPhase" "installPhase" ];
11
12 inherit zsh gnutar;
13
14 buildPhase = ''
15 substituteAll $src recv
16 '';
17
18 installPhase = ''
19 mkdir -p $out/bin
20
21 install -m 755 -t $out/bin \
22 recv
23 '';
24}
diff --git a/recv b/recv
new file mode 100644
index 0000000..8d28884
--- /dev/null
+++ b/recv
@@ -0,0 +1,13 @@
1#!@zsh@/bin/zsh
2
3user="$0"
4[[ -n "$user" ]] || exit 2
5
6homeDir=$(getent passwd "$user" | cut -f6 -d:)
7recvDir="${homeDir}/uucppublic"
8
9[[ -d "$recvDir" ]] || exit 1
10
11umask 007
12
13exec @gnutar@/bin/tar -xv -C $(mktemp -d -p "$recvDir" recv.XXXXXXXXXX) --owner "$user" --no-same-permissions \ No newline at end of file