Merge pull request #33867 from dtzWill/update/mendeley-1.17.13-and-update-checker
mendeley: add update script, use it, add myself as maintainer
This commit is contained in:
commit
ebc090c125
|
@ -31,6 +31,8 @@
|
||||||
# will leave entries on your system after uninstalling mendeley.
|
# will leave entries on your system after uninstalling mendeley.
|
||||||
# (they can be removed by running '$out/bin/install-mendeley-link-handler.sh -u')
|
# (they can be removed by running '$out/bin/install-mendeley-link-handler.sh -u')
|
||||||
, autorunLinkHandler ? true
|
, autorunLinkHandler ? true
|
||||||
|
# Update script
|
||||||
|
, writeScript
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
|
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
|
||||||
|
@ -43,14 +45,14 @@ let
|
||||||
then "i386"
|
then "i386"
|
||||||
else "amd64";
|
else "amd64";
|
||||||
|
|
||||||
shortVersion = "1.17.12-stable";
|
shortVersion = "1.17.13-stable";
|
||||||
|
|
||||||
version = "${shortVersion}_${arch}";
|
version = "${shortVersion}_${arch}";
|
||||||
|
|
||||||
url = "http://desktop-download.mendeley.com/download/apt/pool/main/m/mendeleydesktop/mendeleydesktop_${version}.deb";
|
url = "http://desktop-download.mendeley.com/download/apt/pool/main/m/mendeleydesktop/mendeleydesktop_${version}.deb";
|
||||||
sha256 = if stdenv.system == arch32
|
sha256 = if stdenv.system == arch32
|
||||||
then "09n910ny8k103g1v8m19f9n827l2y0kmz79cwgy95k6acf2rkc2x"
|
then "0q4x62k00whmq8lskphpcxc610cvclxzcr5k0v7pxjxs9sx5yx43"
|
||||||
else "11z65mj1a2rw6cwfarl8r1vzpcz4ww5mgvd5fyv31l60mbmnqkap";
|
else "01ylyily1hip35z0d4qkdpbzp5yn4r015psc5773xsqlgrnlwjm3";
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
qtbase
|
qtbase
|
||||||
|
@ -133,11 +135,14 @@ stdenv.mkDerivation {
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
dontPatchElf = true;
|
dontPatchElf = true;
|
||||||
|
|
||||||
meta = {
|
updateScript = import ./update.nix { inherit writeScript; };
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
homepage = http://www.mendeley.com;
|
homepage = http://www.mendeley.com;
|
||||||
description = "A reference manager and academic social network";
|
description = "A reference manager and academic social network";
|
||||||
license = stdenv.lib.licenses.unfree;
|
license = licenses.unfree;
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ dtzWill ];
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
60
pkgs/applications/office/mendeley/update.nix
Normal file
60
pkgs/applications/office/mendeley/update.nix
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
{ writeScript }:
|
||||||
|
|
||||||
|
writeScript "update-mendeley" ''
|
||||||
|
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
|
||||||
|
''
|
Loading…
Reference in a new issue