diff options
| author | vg <vgm+dev@devys.org> | 2026-02-04 17:02:50 +0100 |
|---|---|---|
| committer | vg <vgm+dev@devys.org> | 2026-02-04 17:02:50 +0100 |
| commit | dfd985bcc2b15390e29dc7f779cf2edb69071ca0 (patch) | |
| tree | 27a76dd6f5a1dbd0996bc1f91bebabd58f5e6620 /gamechestcli/src/__main__.py | |
| parent | 26e22b96e6e1f1cd4669887e2be2f23b82ae4323 (diff) | |
| download | gamechest-dfd985bcc2b15390e29dc7f779cf2edb69071ca0.tar.gz gamechest-dfd985bcc2b15390e29dc7f779cf2edb69071ca0.tar.bz2 gamechest-dfd985bcc2b15390e29dc7f779cf2edb69071ca0.zip | |
git-sync on dita
Diffstat (limited to 'gamechestcli/src/__main__.py')
| -rwxr-xr-x | gamechestcli/src/__main__.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/gamechestcli/src/__main__.py b/gamechestcli/src/__main__.py new file mode 100755 index 0000000..8452b99 --- /dev/null +++ b/gamechestcli/src/__main__.py @@ -0,0 +1,67 @@ +#!/usr/bin/python3 +''' +Manage games. Install, remove, run them. + +Usage: gamechest install <GAME_ID> + gamechest remove <GAME_ID> + gamechest run [--profile_id=<PROFILE_ID>] <GAME_ID> + gamechest set [--profile_id=<PROFILE_ID>] [--remote_basedir=<PATH>] [--gamesaves_path=<PATH>] + gamechest list [--installed|--not-installed] + gamechest showconfig + +Options: + --profile_id=<PROFILE_ID>, -p <PROFILE_ID> + use profile <PROFILE_ID> 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['<GAME_ID>']) + elif args['remove']: + remove.remove(args['<GAME_ID>']) + 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['<GAME_ID>'], 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() |
