aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/update.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/update.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/office/mendeley/update.nix61
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
+''