From 4e6b062a6416f691a957c6870599713b1a23b19c Mon Sep 17 00:00:00 2001 From: Fabien Benureau Date: Tue, 25 Jun 2013 23:09:26 +0200 Subject: [PATCH] update command for updating repository format --- papers/commands/__init__.py | 1 + papers/commands/update_cmd.py | 19 +++++++++++++++++++ papers/papers | 1 + 3 files changed, 21 insertions(+) create mode 100644 papers/commands/update_cmd.py diff --git a/papers/commands/__init__.py b/papers/commands/__init__.py index bde2380..5ee8934 100644 --- a/papers/commands/__init__.py +++ b/papers/commands/__init__.py @@ -10,3 +10,4 @@ import remove_cmd import websearch_cmd import tags_cmd import attach_cmd +import update_cmd diff --git a/papers/commands/update_cmd.py b/papers/commands/update_cmd.py new file mode 100644 index 0000000..6c521b9 --- /dev/null +++ b/papers/commands/update_cmd.py @@ -0,0 +1,19 @@ +from .. import repo +from .. import color + +def parser(subparsers, config): + parser = subparsers.add_parser('update', help='update the repository to the lastest format') + return parser + + +def command(config, ui): + rp = repo.Repository.from_directory(config) + msg = ("You should backup the paper directory {} before continuing." + "Continue ?").format(color.dye(rp.papersdir, color.filepath)) + sure = ui.input_yn(question=msg, default='n') + if sure: + for p in rp.all_papers(): + tags = set(p.metadata['tags']) + tags = tags.union(p.metadata['labels']) + p.metadata.pop('labels', []) + rp.save_paper(p) diff --git a/papers/papers b/papers/papers index 55281b8..7f5edfe 100755 --- a/papers/papers +++ b/papers/papers @@ -22,6 +22,7 @@ cmds = collections.OrderedDict([ ('websearch', commands.websearch_cmd), ('tags', commands.tags_cmd), ('attach', commands.attach_cmd), + ('update', commands.update_cmd), ]) config = configs.read_config()