Ejemplo n.º 1
0
def main(config):
    mkdir_p(config["statefolder"])
    # load index JSON
    state_index_src = os.path.join(config["statefolder"], "index.js")
    logging.debug("INDEX = " + state_index_src)
    state_index = []
    try:
        jstr = file(state_index_src, "r").read()
        state_index = json.loads(jstr[len(EnvironmentState.JS_VARIABLE_INDEX) :])
    except:
        logging.info("No index file available. Creating at {0:s}".format(state_index_src))

    # capture state
    envstate = EnvironmentState(config["baseurl"])
    envstate.populateState()
    # append index entry
    row = [envstate.getTStamp(), envstate.tstamp.strftime(config["stateformat"])]
    logging.debug(pprint.pformat(row))
    state_index.append(row)
    # Write out the state JSON file
    statedest = file(os.path.join(config["statefolder"], row[1]), "w")
    envstate.asJSON(statedest)
    statedest.close()
    # update the index JSON file
    jbuffer = file(state_index_src, "w")
    jbuffer.write(EnvironmentState.JS_VARIABLE_INDEX)
    json.dump(state_index, jbuffer, indent=2)
    jbuffer.close()