# 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