#! /usr/bin/env python import argparse import re import os import fileSys # import ipdb #scriptDir = os.path.dirname(os.path.realpath(__file__)) #__version__ = gitInfo.get_commit_reltag(gitDir=scriptDir) __version__ = '1.0' def processFiles(args): # sort through Downloads directory for .tsvg files # put in savedGames/ # make simlink to latest games = fileSys.getRecursiveFileList([args.datadir], '.tsvg') lastTime = 0 lastfile = '' # begin processing for game in games: m = re.search(r'triplea_(\d+.\d)_(.*)tsvg', os.path.basename(game)) if m: mtime = os.path.getmtime(game) if not os.path.isdir( os.path.join(args.savebase, 'triplea_{0}'.format(m.group(1)))): os.mkdir(os.path.join(args.savebase, 'triplea_{0}'.format(m.group(1))), 0755) newName = os.path.join( args.savebase, 'triplea_{0}'.format(m.group(1)), os.path.basename(game)) os.rename(game, newName) else: m = re.search(r'(.*)tsvg', os.path.basename(game)) if m: mtime = os.path.getmtime(game) if not os.path.isdir(os.path.join(args.savebase, 'Alex')): os.mkdir(os.path.join(args.savebase, 'Alex'), 0755) newName = os.path.join( args.savebase, 'Alex', os.path.basename(game)) os.rename(game, newName) else: print("No basename for {0}".format(os.path.basename(game))) mtime = None if mtime > lastTime: lastTime = mtime lastfile = newName # make simlink to last in list linkName = os.path.join(args.savebase, 'latest.tsvg') if os.path.exists(linkName): os.remove(linkName) os.symlink(lastfile, linkName) ################################################################# # main routine if __name__ == '__main__': parser = argparse.ArgumentParser( description='Sort TripleA savegames into savegames directory') parser.add_argument('--datadir', help='path to downloaded .tsvg files, default = Downloads', default='/home/surfer/Downloads') parser.add_argument('--savebase', help='base directory to save games, default = triplea/savedGames)', default=os.path.join( os.environ['HOME'], 'triplea/savedGames')) parser.add_argument('--version', action='version', version='%(prog)s ' + __version__) args = parser.parse_args() processFiles(args)