From 411e47351c996aa1d1f19dc10366ee824d091b40 Mon Sep 17 00:00:00 2001 From: zlg Date: Wed, 10 Oct 2018 20:49:02 -0700 Subject: cli: Add "export" command The export command is like the import command; currently supporting YAML output, but ready to be expanded as needed. --- src/vgstash_cli.py | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) (limited to 'src/vgstash_cli.py') diff --git a/src/vgstash_cli.py b/src/vgstash_cli.py index 5f69c47..72a751a 100644 --- a/src/vgstash_cli.py +++ b/src/vgstash_cli.py @@ -120,7 +120,6 @@ def list_games(filter, raw, width): notes = notes.replace('\r', '\\r') else: notes = '' - if raw: click.echo("|".join(( r['title'], @@ -209,6 +208,7 @@ def notes(title, system, edit): dir_okay=False, file_okay=True), default=sys.stdin, + required=False, ) def import_file(format, filepath, update): """ @@ -236,3 +236,39 @@ def import_file(format, filepath, update): except sqlite3.IntegrityError as e: count -= 1 click.echo("Successfully imported {} games from {}.".format(count, filepath)) + + +@cli.command("export") +@click.option("--format", "-f", type=click.Choice(["yaml"]), required=False, default="yaml") +@click.argument("filepath", + type=click.Path( + exists=False, + readable=True, + writable=True, + resolve_path=True, + dir_okay=False, + file_okay=True), + default=sys.stdout, + required=False, + ) +def export_file(format, filepath): + """ + Export the game database to a file written in the chosen format. + + The default format is YAML. + """ + db = get_db() + data = db.list_games() + game_set = [] + # Time to re-read master's code + if format == "yaml": + for game in data: + g = {} + for field in game.keys(): + g.update({field: game[field]}) + game_set.append(g) + with open(filepath, "w") as fp: + yaml.dump(game_set, fp, default_flow_style=False, + indent=4, allow_unicode=True) + click.echo("Successfully exported 6 games to {}.".format(os.path.join(os.getcwd(), "test_export.yml"))) + -- cgit v1.2.3-54-g00ecf ass='list nowrap'>AgeCommit message (Collapse)AuthorFilesLines 2020-05-02Reintegrate personal library as autoload scriptzlg2-16/+28 Functions that I've built up over time were squirreled away in a separate file for a while, but they were subtly broken and some didn't work. All functions in the library should now work as expected, and are easy to integrate into other installations of Vim. 2020-05-02colors/zlg.vim: Remove Trailing groupzlg1-3/+0 It wasn't applying correctly on files anyway. 2018-11-15add SetKeyMap function, export funcs to own filezlg2-194/+278 With this commit, I can toggle between Dvorak and QWERTY layouts with <Leader>q, making it much easier to edit text over the network. 2018-11-12Clean up function commentszlg1-7/+11 2018-11-12Add BufDiff()zlg1-0/+47