Merge pull request #31772 from ttuegel/dropbox/versions

Dropbox: overwrite old versions, pass arguments, fix sign-in

authored by Thomas Tuegel and committed by GitHub 850846e1 e677ed1c

+25 -3
+25 -3
pkgs/applications/networking/dropbox/default.nix
··· 35 35 targetPkgs = pkgs: with pkgs; with xlibs; [ 36 36 libICE libSM libX11 libXcomposite libXdamage libXext libXfixes libXrender 37 37 libXxf86vm libxcb xkeyboardconfig 38 - curl dbus fontconfig freetype gcc glib gnutar libxml2 libxslt zlib 38 + curl dbus firefox-bin fontconfig freetype gcc glib gnutar libxml2 libxslt 39 + procps zlib 39 40 ]; 40 41 41 42 extraInstallCommands = '' ··· 44 45 ''; 45 46 46 47 runScript = writeScript "install-and-start-dropbox" '' 48 + export BROWSER=firefox 49 + 50 + set -e 51 + 52 + do_install= 47 53 if ! [ -d "$HOME/.dropbox-dist" ]; then 54 + do_install=1 55 + else 56 + installed_version=$(cat "$HOME/.dropbox-dist/VERSION") 57 + latest_version=$(printf "${version}\n$installed_version\n" | sort -V | head -n 1) 58 + if [ "x$installed_version" != "x$latest_version" ]; then 59 + do_install=1 60 + fi 61 + fi 62 + 63 + if [ -n "$do_install" ]; then 64 + installer=$(mktemp) 48 65 # Dropbox is not installed. 49 66 # Download and unpack the client. If a newer version is available, 50 67 # the client will update itself when run. 51 - curl '${installer}' | tar -C "$HOME" -x -z 68 + curl '${installer}' >"$installer" 69 + pkill dropbox || true 70 + rm -fr "$HOME/.dropbox-dist" 71 + tar -C "$HOME" -x -z -f "$installer" 72 + rm "$installer" 52 73 fi 53 - exec "$HOME/.dropbox-dist/dropboxd" 74 + 75 + exec "$HOME/.dropbox-dist/dropboxd" "$@" 54 76 ''; 55 77 56 78 meta = with lib; {