Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/devbot/state.py
blob: bc17761bd583f74c9b21703592c5a64336a2f36d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import os
import json

from devbot import config

_state = None

def _get_state_path():
    return os.path.join(config.home_dir, "state.json")

def _get_state():
    global _state

    if _state is not None:
        return _state

    state_path = _get_state_path()
    if os.path.exists(state_path):
        _state = json.load(open(state_path))
    else:
        _state = { "built_modules": {} }

    return _state

def _state_changed():
    json.dump(_state, open(_get_state_path(), "w+"))

def add_built_module(name, commit_id):
    _get_state()["built_modules"][name] = commit_id
    _state_changed()

def remove_built_module(name):
    del _get_state()["built_modules"][name]
    _state_changed()

def get_built_module(name):
    return _get_state()["built_modules"].get(name, None)

def clean():
    _state = None

    print "Deleting state"

    try:
        os.unlink(_get_state_path())
    except OSError:
        pass