From 6cf00a01a1bc271e281d7999f76ff8e3ab067509 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Mon, 1 Oct 2012 14:40:40 +0100 Subject: Basic controller with --work-area and auto git update --- lorry-controller | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 lorry-controller diff --git a/lorry-controller b/lorry-controller new file mode 100755 index 0000000..1ead6c7 --- /dev/null +++ b/lorry-controller @@ -0,0 +1,49 @@ +#!/usr/bin/env python +# +# Copyright (C) 2012 Codethink Limited + + +import cliapp +import logging +import os + +defaults = { + 'work-area': '/home/lorry/controller-area' +} + + +class LorryController(cliapp.Application): + + def add_settings(self): + self.settings.string(['work-area'], + 'path to the area for the controller to work in', + metavar='PATH', + default=defaults['work-area']) + + def process_args(self, args): + logging.info("Starting to control lorry") + try: + os.chdir(self.settings['work-area']) + except OSError, e: + logging.error("Unable to chdir() to %s" % + self.settings['work-area']) + raise SystemExit(2) + if not os.path.isdir("git"): + logging.error("Unable to find git checkout") + raise SystemExit(3) + if not os.path.isdir("work"): + os.mkdir("work") + + logging.info("Updating configuration checkout") + self.rungit(['remote', 'update', 'origin']) + self.rungit(['reset', '--hard', 'origin/master']) + self.rungit(['clean', '-fdx']) + + + def rungit(self, args): + self.runcmd(['git']+args, cwd=os.path.join(self.settings['work-area'], + 'git')) + + +if __name__ == '__main__': + LorryController(version='1').run() -- cgit v1.2.1