diff options
Diffstat (limited to 'hel')
| -rw-r--r-- | hel/recv-media.nix | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/hel/recv-media.nix b/hel/recv-media.nix index 7afd981d..fd638ccc 100644 --- a/hel/recv-media.nix +++ b/hel/recv-media.nix | |||
| @@ -15,6 +15,8 @@ writeScriptBin "recv-media" '' | |||
| 15 | #!${stdenv.shell} | 15 | #!${stdenv.shell} |
| 16 | 16 | ||
| 17 | pid=$? | 17 | pid=$? |
| 18 | notify=${if notifyUser == null then "false" else "true"} | ||
| 19 | notifyUser=${if notifyUser == null then "" else notifyUser} | ||
| 18 | 20 | ||
| 19 | PATH=${eject}/bin:${coreutils}/bin:${if showTitle then ''${ffmpeg}/bin:${gnused}/bin:'' else ""}${wrapperDir} | 21 | PATH=${eject}/bin:${coreutils}/bin:${if showTitle then ''${ffmpeg}/bin:${gnused}/bin:'' else ""}${wrapperDir} |
| 20 | 22 | ||
| @@ -29,23 +31,29 @@ writeScriptBin "recv-media" '' | |||
| 29 | 31 | ||
| 30 | logger --id=$pid -t recv-media -p user.debug <<EOF | 32 | logger --id=$pid -t recv-media -p user.debug <<EOF |
| 31 | $(id) | 33 | $(id) |
| 32 | $(stat ${dir}) | 34 | $(stat ''${dir}) |
| 33 | $(stat ${1}) | 35 | $(stat ''${1}) |
| 34 | $(print ${2}) | 36 | $(print ''${2}) |
| 35 | EOF | 37 | EOF |
| 36 | 38 | ||
| 37 | if ! cp -lnv --preserve=all "$1" "''${target}"; then | ||
| 38 | mkdir -pv $(dirname "''${tmpFile}") | ||
| 39 | |||
| 40 | ionice -c 3 -t cp -vn --preserve=all "$1" "''${tmpFile}" && mv -v "''${tmpFile}" "''${target}" | ||
| 41 | fi | ||
| 42 | touch -c -m -t "$2" "''${target}" | ||
| 43 | |||
| 44 | ${if notifyUser == null then "" else "#"}exit 0 | ||
| 45 | |||
| 46 | ( | 39 | ( |
| 47 | summary=${if showTitle then ''$(ffmpeg -i "''${target}" -f ffmetadata pipe:1 2>/dev/null | sed -r '/^\[CHAPTER\]$/q; /^title=/!d; s/^title=//')'' else ''""''} | 40 | if ! cp -lnv --preserve=all "$1" "''${target}"; then |
| 48 | [[ -z "''${summary}" ]] && summary=$(basename "$1") | 41 | mkdir -pv $(dirname "''${tmpFile}") || exit 1 |
| 49 | printf "%s\n%s\n" "''${summary}" "" | notify-${notifyUser} -a recv-media || true | 42 | |
| 50 | ) || true | 43 | ionice -c 3 -t cp -vn --preserve=all "$1" "''${tmpFile}" && mv -v "''${tmpFile}" "''${target}" || exit 1 |
| 44 | fi | ||
| 45 | touch -c -m -t "$2" "''${target}" || exit 1 | ||
| 46 | ) || ( | ||
| 47 | if notify; then | ||
| 48 | printf "%s\n%s\n" $(basename "$1") "Failed to download" | notify-''${notifyUser} -a recv-media -u Critical | ||
| 49 | fi | ||
| 50 | ) | ||
| 51 | |||
| 52 | if notify; then | ||
| 53 | ( | ||
| 54 | summary=${if showTitle then ''$(ffmpeg -i "''${target}" -f ffmetadata pipe:1 2>/dev/null | sed -r '/^\[CHAPTER\]$/q; /^title=/!d; s/^title=//')'' else ''""''} | ||
| 55 | [[ -z "''${summary}" ]] && summary=$(basename "$1") | ||
| 56 | printf "%s\n%s\n" "''${summary}" "" | notify-''${notifyUser} -a recv-media || true | ||
| 57 | ) || true | ||
| 58 | fi | ||
| 51 | '' | 59 | '' |
