diff options
Diffstat (limited to 'olpcfr/semanticxo/_runner.py')
-rw-r--r-- | olpcfr/semanticxo/_runner.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/olpcfr/semanticxo/_runner.py b/olpcfr/semanticxo/_runner.py new file mode 100644 index 0000000..cdbe650 --- /dev/null +++ b/olpcfr/semanticxo/_runner.py @@ -0,0 +1,45 @@ +# python import +import os, shlex, subprocess, tarfile + +# olpcfr tools import +from olpcfr.tools import logger, storage + + +class Runner(object): + + class __Singleton: + + def __init__(self): + self.proc = None + + def run(self): + # prepare paths + _store_path = storage.get_path(path='store') + # change dir for unzipping + os.chdir(_store_path) + if os.path.exists('redstore'): + pass + else: + _trip_zip = storage.get_path(path='data/triplestore.tar.bz2') + # extract files in tmp dir + _tar = tarfile.open(_trip_zip) + _tar.extractall() + _tar.close() + # get args + args = shlex.split('sh %s/wrapper.sh' % _store_path) + self.proc = subprocess.Popen(args) + # stay in the dir + os.chdir(storage.BUNDLE) + + def stop(self): + pass + + # singleton instance + instance = None + + def __new__(c): + if Runner.instance is None: + Runner.instance = Runner.__Singleton() + else: + pass + return Runner.instance |