summaryrefslogtreecommitdiff
path: root/ick2/actions.py
diff options
context:
space:
mode:
Diffstat (limited to 'ick2/actions.py')
-rw-r--r--ick2/actions.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/ick2/actions.py b/ick2/actions.py
index daab0e5..0c4aa7f 100644
--- a/ick2/actions.py
+++ b/ick2/actions.py
@@ -597,11 +597,28 @@ class DputAction(Action): # pragma: no cover
env = self.get_env()
workspace = env.get_workspace_directory()
- argv = ['sh', '-c', 'dput ick *.changes']
+ apt_server = self._cc.get_apt_server()
+ config = self.configure_dput(apt_server)
+ argv = ['sh', '-c', 'dput -c {} ick *.changes'.format(config)]
exit_code = env.host_runcmd(argv, cwd=workspace)
env.report(exit_code, 'dput finished (exit code %d)\n' % exit_code)
+ os.remove(config)
return exit_code
+ def configure_dput(self, apt_server):
+ fd, filename = tempfile.mkstemp()
+ os.close(fd)
+ with open(filename, 'w') as f:
+ f.write('[ick]\n')
+ f.write('login = incoming\n')
+ f.write('fqdn = {}\n'.format(apt_server))
+ f.write('method = scp\n')
+ f.write('incoming = /srv/apt/incoming\n')
+ f.write('allow_unsigned_uploads = 1\n')
+ f.write('check_version = 0\n')
+ f.write('run_dinstall = 0\n')
+ return filename
+
class NotifyAction(Action): # pragma: no cover