diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/update.nix')
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/update.nix | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/update.nix b/infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/update.nix new file mode 100644 index 000000000000..56becea9959a --- /dev/null +++ b/infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/update.nix @@ -0,0 +1,61 @@ +{ writeScript, runtimeShell }: + +writeScript "update-mendeley" '' + #!${runtimeShell} + function follow() { + local URL=$1 + while true; do + NEWURL=$(curl -m20 -sI "$URL" -o /dev/null -w '%{redirect_url}') + [ -z "$NEWURL" ] && break + [[ $NEWURL = $URL ]] && (echo "redirect loop?!"; exit 1) + echo "Following $URL -> $NEWURL ..." >&2 + URL=$NEWURL + done + + echo $URL + } + + amd64URL=$(follow https://www.mendeley.com/repositories/ubuntu/stable/amd64/mendeleydesktop-latest) + amd64V=$(basename $amd64URL|grep -m1 -o "[0-9]\+\.[0-9]\+\(\.[0-9]\+\)\?") + i386URL=$(follow https://www.mendeley.com/repositories/ubuntu/stable/i386/mendeleydesktop-latest) + i386V=$(basename $i386URL|grep -m1 -o "[0-9]\+\.[0-9]\+\(\.[0-9]\+\)\?") + + echo "amd64 version: $amd64V" + echo "i386 version: $i386V" + if [[ $amd64V != $i386V ]]; then + echo "Versions not the same!" + exit 1 + fi + + if grep -q -F "$amd64V" ${./default.nix}; then + echo "No new version yet, nothing to do." + echo "Have a nice day!" + exit 0 + fi + + amd64OldHash=$(nix-instantiate --eval --strict -A "mendeley.src.drvAttrs.outputHash" --argstr system "x86_64-linux"| tr -d '"') + i386OldHash=$(nix-instantiate --eval --strict -A "mendeley.src.drvAttrs.outputHash" --argstr system "i686-linux"| tr -d '"') + + echo "Prefetching amd64..." + amd64NewHash=$(nix-prefetch-url $amd64URL) + echo "Prefetching i386..." + i386NewHash=$(nix-prefetch-url $i386URL) + + # Don't actually update, just report that an update is available + cat <<EOF + + + Time to update to $amd64V ! + + 32bit (i386): + Old: $i386OldHash + New: $i386NewHash + 64bit (amd64): + Old: $amd64OldHash + New: $amd64NewHash + + Exiting so this information is seen... + (no update is actually performed here) + EOF + exit 1 +'' |