summaryrefslogtreecommitdiffstats
path: root/gamechestcli/src/__main__.py
diff options
context:
space:
mode:
authorvg <vgm+dev@devys.org>2026-02-04 17:02:50 +0100
committervg <vgm+dev@devys.org>2026-02-04 17:02:50 +0100
commitdfd985bcc2b15390e29dc7f779cf2edb69071ca0 (patch)
tree27a76dd6f5a1dbd0996bc1f91bebabd58f5e6620 /gamechestcli/src/__main__.py
parent26e22b96e6e1f1cd4669887e2be2f23b82ae4323 (diff)
downloadgamechest-dfd985bcc2b15390e29dc7f779cf2edb69071ca0.tar.gz
gamechest-dfd985bcc2b15390e29dc7f779cf2edb69071ca0.tar.bz2
gamechest-dfd985bcc2b15390e29dc7f779cf2edb69071ca0.zip
git-sync on dita
Diffstat (limited to 'gamechestcli/src/__main__.py')
-rwxr-xr-xgamechestcli/src/__main__.py67
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()