def _getTagLine(): from util import VFS # can't be done at top level due to circular import issues... # Look for a git repository. if VFS.isdir('/gameroot/.git'): shortref = None headhash = None # HEAD is in the form "ref: refs/heads/master\n" if a branch is # checked out, or just the hash if HEAD is detached. refline = VFS.open('/gameroot/.git/HEAD').read().strip() if refline[0:5] == "ref: ": headref = refline[5:] if VFS.isfile('/gameroot/.git/' + headref): # The ref is in the form "sha1-hash\n" headhash = VFS.open('/gameroot/.git/' + headref).read().strip() else: # It's a packed ref. for line in VFS.open('/gameroot/.git/packed-refs'): if line.strip().endswith(headref): headhash = line[:40] break shortref = re.sub('^refs/(heads/)?', '', headref) else: shortref = "(detached)" headhash = refline return 'development (git %s %s)' % (shortref or "(unknown)", headhash and headhash[:7] or "(unknown)") # Look for the svn administrative directory. elif VFS.isdir('/gameroot/src/.svn'): revision = VFS.open( '/gameroot/src/.svn/entries').readlines()[3].strip() return 'development (svn r%s)' % revision else: return None
def _getTagLine(): from util import VFS # can't be done at top level due to circular import issues... # Look for a git repository. if VFS.isdir('/gameroot/.git'): shortref = None headhash = None # HEAD is in the form "ref: refs/heads/master\n" if a branch is # checked out, or just the hash if HEAD is detached. refline = VFS.open('/gameroot/.git/HEAD').read().strip() if refline[0:5] == "ref: ": headref = refline[5:] if VFS.isfile('/gameroot/.git/' + headref): # The ref is in the form "sha1-hash\n" headhash = VFS.open('/gameroot/.git/' + headref).read().strip() else: # It's a packed ref. for line in VFS.open('/gameroot/.git/packed-refs'): if line.strip().endswith(headref): headhash = line[:40] break shortref = re.sub('^refs/(heads/)?', '', headref) else: shortref = "(detached)" headhash = refline return 'development (git %s %s)' % (shortref or "(unknown)", headhash and headhash[:7] or "(unknown)") # Look for the svn administrative directory. elif VFS.isdir('/gameroot/src/.svn'): revision = VFS.open('/gameroot/src/.svn/entries').readlines()[3].strip() return 'development (svn r%s)' % revision else: return None
def savePlayers(): for pref in _playerDB.execute('SELECT * FROM `players` WHERE `changed` = 1').fetchall(): try: c = Config.load(VFS.resolveWrite(_makePlayerIniName(str(pref[0]))), type = 2) c.set("player","leftymode",int(pref[1])) c.set("player","drumflip",int(pref[2])) c.set("player","auto_kick",int(pref[3])) c.set("player","assist_mode",int(pref[4])) c.set("player","two_chord_max",int(pref[5])) c.set("player","necktype",int(pref[6])) c.set("player","neck",str(pref[7])) c.set("player","part",int(pref[8])) c.set("player","difficulty",int(pref[9])) c.set("player","name",str(pref[10])) c.set("player","controller",int(pref[11])) del c _playerDB.execute('UPDATE `players` SET `changed` = 0 WHERE `name` = ?', [pref[0]]) except: c = VFS.open(_makePlayerIniName(str(pref[0])), "w") c.close() c = Config.load(VFS.resolveWrite(_makePlayerIniName(str(pref[0]))), type = 2) c.set("player","leftymode",int(pref[1])) c.set("player","drumflip",int(pref[2])) c.set("player","auto_kick",int(pref[3])) c.set("player","assist_mode",int(pref[4])) c.set("player","two_chord_max",int(pref[5])) c.set("player","necktype",int(pref[6])) c.set("player","neck",str(pref[7])) c.set("player","part",int(pref[8])) c.set("player","difficulty",int(pref[9])) c.set("player","name",str(pref[10])) c.set("player","controller",int(pref[11])) del c _playerDB.execute('UPDATE `players` SET `changed` = 0 WHERE `name` = ?', [pref[0]]) _playerDB.execute('UPDATE `players` SET `loaded` = 0') _playerDB.commit()