#!/usr/bin/python3 ''' Manage games. Install, remove, run them. Usage: gamechest install gamechest remove gamechest run [--profile_id=] gamechest set [--profile_id=] [--remote_basedir=] [--gamesaves_path=] gamechest list [--installed|--not-installed] gamechest showconfig Options: --profile_id=, -p use profile instead of the default one. ''' import sys import docopt from rich import print from gamechest.cliactions import install, remove, run from gamechest.gameconfig import config from gamechest.statusdb import StatusDB from gamechest.gamedb import GameDB def main(): args = docopt.docopt(__doc__) #print(args); raise SystemExit(0) if args['install']: install.install(args['']) elif args['remove']: remove.remove(args['']) elif args['run']: profile_id = args['--profile_id'] or config.get_profile_id() if not profile_id: print('profile_id must be not null', file=sys.stderr) run.run(args[''], profile_id) elif args['set']: if args['--profile_id']: config.set_profile_id(args['--profile_id']) if args['--remote_basedir']: config.set_remote_basedir(args['--remote_basedir']) if args['--gamesaves_path']: config.set_gamesaves_path(args['--gamesaves_path']) config.save() elif args['list']: status_db = StatusDB() if args['--installed']: print(list(status_db.get_installed())) else: game_db = GameDB() list_installed = list(status_db.get_installed()) for game_id in game_db.get_ids(): if args['--not-installed']: if game_id not in list_installed: print(game_id) else: print(game_id, 'installed:', game_id in list_installed) elif args['showconfig']: config.print_config() if __name__ == "__main__": main()