Beispiel #1
0
    def do_autorun(self, argvstr):
        argv = argvstr.split()
        if len(argv) >= 2:
            many_argvs = autorun.argvTransform(argv)
            # run these argvs
            try:
                for argv in many_argvs:
                    p = subprocess.Popen(argv, stderr=subprocess.PIPE)
                    data = p.communicate()[1]
                    datav = data.split("\n")

                    if len(datav) == 2:
                        tablename = datav[0]
                        attrstr = datav[1]
                        attr =  autorun.stringToDict(attrstr)
                        self.database.insertOrCreateTable(tablename, attr)
            except OSError, e:
                print e
Beispiel #2
0
    def do_run(self, argvstr):
        argv = argvstr.split()
        try:
            # read the data  from the subprocess's stdout
            p = subprocess.Popen(argv, stderr=subprocess.PIPE)

            # the format of data from std.err looks like:
            # tablename\n
            # {'key': value } 
            data  = p.communicate()[1]
            datav = data.split("\n")
            
            if len(datav) == 2:
                tablename = datav[0]
                attrstr = datav[1]
                attr =  autorun.stringToDict(attrstr)
                self.database.insertOrCreateTable(tablename, attr)
                
                
        except OSError, e:
            print e