dropbox: fix bug caused by Python gi import

When running the service start script with `DISPLAY` set, a `gi`
import error is triggered. Blanking the variable will make the script
use a different code path that does not attempt to import `gi`.

Also moves activation script up into start of script instead.

PR #1415
This commit is contained in:
eyjhb 2020-07-29 23:59:08 +02:00 committed by Robert Helgesson
parent 2e7935767f
commit bb6eb9b13e
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89

View file

@ -36,7 +36,7 @@ in {
Install = { WantedBy = [ "default.target" ]; };
Service = {
Environment = [ "HOME=${homeBaseDir}" ];
Environment = [ "HOME=${homeBaseDir}" "DISPLAY=" ];
Type = "forking";
PIDFile = "${homeBaseDir}/.dropbox/dropbox.pid";
@ -49,6 +49,22 @@ in {
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
ExecStop = "${dropboxCmd} stop";
ExecStart = toString (pkgs.writeShellScript "dropbox-start" ''
# ensure we have the dirs we need
$DRY_RUN_CMD ${pkgs.coreutils}/bin/mkdir $VERBOSE_ARG -p \
${homeBaseDir}/{.dropbox,.dropbox-dist,Dropbox}
# symlink them as needed
if [[ ! -d ${config.home.homeDirectory}/.dropbox ]]; then
$DRY_RUN_CMD ${pkgs.coreutils}/bin/ln $VERBOSE_ARG -s \
${homeBaseDir}/.dropbox ${config.home.homeDirectory}/.dropbox
fi
if [[ ! -d ${escapeShellArg cfg.path} ]]; then
$DRY_RUN_CMD ${pkgs.coreutils}/bin/ln $VERBOSE_ARG -s \
${homeBaseDir}/Dropbox ${escapeShellArg cfg.path}
fi
# get the dropbox bins if needed
if [[ ! -f $HOME/.dropbox-dist/VERSION ]]; then
${pkgs.coreutils}/bin/yes | ${dropboxCmd} update
fi
@ -57,21 +73,5 @@ in {
'');
};
};
home.activation.dropbox = hm.dag.entryAfter [ "writeBoundary" ] ''
# ensure we have the dirs we need
$DRY_RUN_CMD ${pkgs.coreutils}/bin/mkdir $VERBOSE_ARG -p \
${homeBaseDir}/{.dropbox,.dropbox-dist,Dropbox}
# symlink them as needed
if [[ ! -d ${config.home.homeDirectory}/.dropbox ]]; then
$DRY_RUN_CMD ${pkgs.coreutils}/bin/ln $VERBOSE_ARG -s \
${homeBaseDir}/.dropbox ${config.home.homeDirectory}/.dropbox
fi
if [[ ! -d ${escapeShellArg cfg.path} ]]; then
$DRY_RUN_CMD ${pkgs.coreutils}/bin/ln $VERBOSE_ARG -s \
${homeBaseDir}/Dropbox ${escapeShellArg cfg.path}
fi
'';
};
}