diff options
author | Gregor Kleen <gkleen@yggdrasil.li> | 2018-04-18 14:36:35 +0200 |
---|---|---|
committer | Gregor Kleen <gkleen@yggdrasil.li> | 2018-04-18 14:36:35 +0200 |
commit | 7e61a4b4f1184657289555d8112226c77ffcf1b7 (patch) | |
tree | dd4f0c53b343cf4428cb35e474b37cd696d96f4b /odin | |
parent | 12ee11496fbb107abda7c40e7bb4b1cbcb8c942c (diff) | |
download | nixos-7e61a4b4f1184657289555d8112226c77ffcf1b7.tar nixos-7e61a4b4f1184657289555d8112226c77ffcf1b7.tar.gz nixos-7e61a4b4f1184657289555d8112226c77ffcf1b7.tar.bz2 nixos-7e61a4b4f1184657289555d8112226c77ffcf1b7.tar.xz nixos-7e61a4b4f1184657289555d8112226c77ffcf1b7.zip |
Nicer utils
Diffstat (limited to 'odin')
-rw-r--r-- | odin/strm.nix | 6 | ||||
-rw-r--r-- | odin/strm/cleanup_youtube | 14 |
2 files changed, 6 insertions, 14 deletions
diff --git a/odin/strm.nix b/odin/strm.nix index 094da07c..487fd170 100644 --- a/odin/strm.nix +++ b/odin/strm.nix | |||
@@ -1,4 +1,7 @@ | |||
1 | { stdenv, zsh, ffmpeg-full, youtube-dl, pv, notmuch, rss2email, buildPerlPackage, perlPackages }: | 1 | { stdenv |
2 | , zsh, ffmpeg-full, youtube-dl, pv, notmuch, rss2email, rolling-directory | ||
3 | , buildPerlPackage, perlPackages | ||
4 | }: | ||
2 | 5 | ||
3 | let | 6 | let |
4 | manual-youtube = buildPerlPackage { | 7 | manual-youtube = buildPerlPackage { |
@@ -46,6 +49,7 @@ in stdenv.mkDerivation { | |||
46 | inherit zsh pv notmuch rss2email; | 49 | inherit zsh pv notmuch rss2email; |
47 | ffmpeg = ffmpeg-full; | 50 | ffmpeg = ffmpeg-full; |
48 | youtubedl = youtube-dl; | 51 | youtubedl = youtube-dl; |
52 | rollingdirectory = rolling-directory; | ||
49 | 53 | ||
50 | buildPhase = '' | 54 | buildPhase = '' |
51 | substituteAllInPlace download_youtube | 55 | substituteAllInPlace download_youtube |
diff --git a/odin/strm/cleanup_youtube b/odin/strm/cleanup_youtube index 2d91fe1f..76c3f0bb 100644 --- a/odin/strm/cleanup_youtube +++ b/odin/strm/cleanup_youtube | |||
@@ -19,19 +19,7 @@ function cleanup { | |||
19 | 19 | ||
20 | urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; } | 20 | urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; } |
21 | 21 | ||
22 | dir=/srv/media/youtube | 22 | @rollingdirectory@/bin/rolling-directory /srv/media/youtube 50Gi |
23 | maxsize=$((1024 * 1024 * 1024 * 50)) | ||
24 | |||
25 | while [[ $(du -bs $dir | awk '{ print $1; }') -gt $maxsize ]]; do | ||
26 | find $dir -type f -not -path $dir/CACHEDIR.TAG -print0 | \ | ||
27 | xargs -0 -- stat --printf '%W %Y %Z %X %n\0' | \ | ||
28 | sort -t '\0' -z | \ | ||
29 | awk -F '\0' '{ gsub("^\\S+\\s+\\S+\\s+\\S+\\s+\\S+\\s+", "", $1); printf "%s\0", $1; }' | \ | ||
30 | xargs -0 -- rm -v | ||
31 | done | ||
32 | |||
33 | find $dir -xtype l -delete | ||
34 | find $dir -type d -empty -delete | ||
35 | 23 | ||
36 | notmuch search --output=messages --format=text 'is:cached' | \ | 24 | notmuch search --output=messages --format=text 'is:cached' | \ |
37 | while read id; do | 25 | while read id; do |