Merge pull request #31772 from ttuegel/dropbox/versions

Dropbox: overwrite old versions, pass arguments, fix sign-in
This commit is contained in:
Thomas Tuegel 2017-11-17 13:57:09 -06:00 committed by GitHub
commit 850846e132
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 25 additions and 3 deletions

View File

@ -35,7 +35,8 @@ buildFHSUserEnv {
targetPkgs = pkgs: with pkgs; with xlibs; [ targetPkgs = pkgs: with pkgs; with xlibs; [
libICE libSM libX11 libXcomposite libXdamage libXext libXfixes libXrender libICE libSM libX11 libXcomposite libXdamage libXext libXfixes libXrender
libXxf86vm libxcb xkeyboardconfig libXxf86vm libxcb xkeyboardconfig
curl dbus fontconfig freetype gcc glib gnutar libxml2 libxslt zlib curl dbus firefox-bin fontconfig freetype gcc glib gnutar libxml2 libxslt
procps zlib
]; ];
extraInstallCommands = '' extraInstallCommands = ''
@ -44,13 +45,34 @@ buildFHSUserEnv {
''; '';
runScript = writeScript "install-and-start-dropbox" '' runScript = writeScript "install-and-start-dropbox" ''
export BROWSER=firefox
set -e
do_install=
if ! [ -d "$HOME/.dropbox-dist" ]; then if ! [ -d "$HOME/.dropbox-dist" ]; then
do_install=1
else
installed_version=$(cat "$HOME/.dropbox-dist/VERSION")
latest_version=$(printf "${version}\n$installed_version\n" | sort -V | head -n 1)
if [ "x$installed_version" != "x$latest_version" ]; then
do_install=1
fi
fi
if [ -n "$do_install" ]; then
installer=$(mktemp)
# Dropbox is not installed. # Dropbox is not installed.
# Download and unpack the client. If a newer version is available, # Download and unpack the client. If a newer version is available,
# the client will update itself when run. # the client will update itself when run.
curl '${installer}' | tar -C "$HOME" -x -z curl '${installer}' >"$installer"
pkill dropbox || true
rm -fr "$HOME/.dropbox-dist"
tar -C "$HOME" -x -z -f "$installer"
rm "$installer"
fi fi
exec "$HOME/.dropbox-dist/dropboxd"
exec "$HOME/.dropbox-dist/dropboxd" "$@"
''; '';
meta = with lib; { meta = with lib; {