diff options
-rw-r--r-- | custom/run-opossum@bragi.nix | 65 | ||||
-rw-r--r-- | users/gkleen@bragi.nix | 4 |
2 files changed, 69 insertions, 0 deletions
diff --git a/custom/run-opossum@bragi.nix b/custom/run-opossum@bragi.nix new file mode 100644 index 00000000..b1ef30c7 --- /dev/null +++ b/custom/run-opossum@bragi.nix | |||
@@ -0,0 +1,65 @@ | |||
1 | { stdenv | ||
2 | , zsh | ||
3 | , findutils | ||
4 | , coreutils | ||
5 | , makeWrapper | ||
6 | , wombat | ||
7 | , opossum | ||
8 | }: | ||
9 | |||
10 | stdenv.mkDerivation { | ||
11 | name = "run-opossum-${version}"; | ||
12 | version = "0.0.0"; | ||
13 | buildInputs = [ makeWrapper ]; | ||
14 | src = builtins.toFile name '' | ||
15 | #!${zsh}/bin/zsh | ||
16 | |||
17 | oversized() { | ||
18 | l=$(du -BG -s -t 75 $BEUTEL | wc -l) | ||
19 | [[ $l -ge 1 ]] | ||
20 | } | ||
21 | |||
22 | echo "Started $(date)" > $LOGFILE | ||
23 | opossum &>> $LOGFILE | ||
24 | |||
25 | wombat search "(not (seen or hidden)) and (not forced)" | \ | ||
26 | xargs -r -n 1 -d '\n' -- wombat force \ | ||
27 | &>> $LOGFILE | ||
28 | |||
29 | find $BEUTEL -type f -iname '*.tgz.bak' -delete | ||
30 | |||
31 | if oversized; then | ||
32 | wombat search "(seen or hidden) and forced" | \ | ||
33 | while (read file && oversized); do | ||
34 | wombat reset $file | ||
35 | find $BEUTEL -type f -iname '*.tgz.bak' -delete | ||
36 | done | ||
37 | |||
38 | wombat search "seen or hidden" | \ | ||
39 | while (read file && oversized); do | ||
40 | wombat delete $file | ||
41 | size=$(du -BG $BEUTEL) | ||
42 | done | ||
43 | fi | ||
44 | |||
45 | echo "Ended $(date)" >> $LOGFILE | ||
46 | ''; | ||
47 | phases = [ "buildPhase" | ||
48 | "installPhase" | ||
49 | ]; | ||
50 | buildPhase = '' | ||
51 | cp -prd --no-preserve=timestamps $src run-opossum.sh | ||
52 | ''; | ||
53 | installPhase = '' | ||
54 | mkdir -p $out/bin | ||
55 | cp run-opossum.sh $out/bin | ||
56 | chmod +x $out/bin/run-opossum.sh | ||
57 | wrapProgram $out/bin/run-opossum.sh \ | ||
58 | --prefix PATH : ${wombat}/bin \ | ||
59 | --prefix PATH : ${opossum}/bin \ | ||
60 | --prefix PATH : ${findutils}/bin \ | ||
61 | --prefix PATH : ${coreutils}/bin \ | ||
62 | --set BEUTEL $HOME/.beutel \ | ||
63 | --set LOGFILE $HOME/.last_opossum.log | ||
64 | ''; | ||
65 | } | ||
diff --git a/users/gkleen@bragi.nix b/users/gkleen@bragi.nix index 2aaed367..e9fdc345 100644 --- a/users/gkleen@bragi.nix +++ b/users/gkleen@bragi.nix | |||
@@ -60,5 +60,9 @@ | |||
60 | }; | 60 | }; |
61 | } | 61 | } |
62 | ); | 62 | ); |
63 | runOpossum = pkgs.callPackage "../custom/run-opossum@bragi.nix" { | ||
64 | wombat = myHaskellPackages.wombatWrapper; | ||
65 | opossum = myHaskellPackages.opossumWrapper; | ||
66 | }; | ||
63 | }; | 67 | }; |
64 | } | 68 | } |