load bash profile using --login when running builds on server

This will make `vagrant ssh` and `fdroid build --server` be the same env,
so troubleshooting should be easier.  !135  Here's what `man bash` says:

 When bash is invoked as an interactive login shell, or as a
 non-interactive shell with the --login option, it first reads and
 executes commands from the file /etc/profile, if that file
 exists.  After reading that file, it looks for ~/.bash_profile,
 ~/.bash_login, and ~/.profile, in that order, and reads and
 executes commands from the first one that exists and is readable.
 The --noprofile option may be used when the shell is started to
 inhibit this behavior. When a login shell exits, bash reads and
 executes commands from the file ~/.bash_logout, if it exists.
This commit is contained in:
Hans-Christoph Steiner 2016-06-21 10:39:41 +02:00
parent d6c9a8466b
commit 498489c570

View file

@ -388,8 +388,7 @@ def build_server(app, build, vcs, build_dir, output_dir, force):
if options.verbose: if options.verbose:
cmdline += ' --verbose' cmdline += ' --verbose'
cmdline += " %s:%s" % (app.id, build.vercode) cmdline += " %s:%s" % (app.id, build.vercode)
cmdline = '. /etc/profile && ' + cmdline chan.exec_command('bash --login -c "' + cmdline + '"')
chan.exec_command('bash -c "' + cmdline + '"')
output = bytes() output = bytes()
while not chan.exit_status_ready(): while not chan.exit_status_ready():
while chan.recv_ready(): while chan.recv_ready():