From d1d8801fedb8c7cd9dd4584eac97668d5b4d5cac Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:10:02 +0200 Subject: Add call to copyright-statement-lint --- check | 1 + 1 file changed, 1 insertion(+) diff --git a/check b/check index 19b680a..4431b7a 100755 --- a/check +++ b/check @@ -21,3 +21,4 @@ set -eu yarn -s yarns/yarn.sh yarns/*.yarn "$@" +copyright-statement-lint jt -- cgit v1.2.1 From 3205c8b821fc671a37a8d4c9a3b81bc5d418d63e Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:10:22 +0200 Subject: Update copyright statement year --- jt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jt b/jt index e17d4c8..d9a0b07 100755 --- a/jt +++ b/jt @@ -1,5 +1,5 @@ #!/usr/bin/python -# Copyright 2010-2013 Lars Wirzenius +# Copyright 2010-2014 Lars Wirzenius # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -- cgit v1.2.1 From fe0a02e3eccc93eb5547154bd98089f823429642 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:11:24 +0200 Subject: Remove useless code (cf. self.settings.require) --- jt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/jt b/jt index d9a0b07..c784411 100755 --- a/jt +++ b/jt @@ -91,10 +91,6 @@ class JournalTool(cliapp.Application): self.settings.require('source') self.settings.require('layout') - if not self.settings['source']: - raise cliapp.AppException( - 'The --source setting is empty or missing.') - if not os.path.exists(self.drafts_dir()): os.mkdir(self.drafts_dir()) -- cgit v1.2.1 From a6eb8b13949dcdb85cb176e354f711de9600d400 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:15:31 +0200 Subject: Move command new to a separate class --- jt | 64 +++++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 25 deletions(-) diff --git a/jt b/jt index c784411..9540d92 100755 --- a/jt +++ b/jt @@ -39,6 +39,44 @@ template = '''\ ''' +class Command(object): + + def __init__(self, app): + self._app = app + + def run(self, args): + raise NotImplementedError() + + +class NewCommand(Command): + + def run(self, args): + if not args: + raise cliapp.AppException('Usage: journal-note new TITLE') + + self._app.settings.require('source') + self._app.settings.require('layout') + + if not os.path.exists(self._app.drafts_dir()): + os.mkdir(self._app.drafts_dir()) + + for i in range(1000): + name = self._app.draft_name(i) + if not os.path.exists(name): + break + else: + raise cliapp.AppException('ERROR: too many existing drafts') + + values = { + 'title': args[0], + 'date': time.strftime('%Y-%m-%d %H:%M') + } + f = open(name, 'w') + f.write(template % values) + f.close() + self._app.edit_file(name) + + class JournalTool(cliapp.Application): cmd_synopsis = { @@ -84,31 +122,7 @@ class JournalTool(cliapp.Application): def cmd_new(self, args): '''Create a new journal entry draft.''' - - if not args: - raise cliapp.AppException('Usage: journal-note new TITLE') - - self.settings.require('source') - self.settings.require('layout') - - if not os.path.exists(self.drafts_dir()): - os.mkdir(self.drafts_dir()) - - for i in range(1000): - name = self.draft_name(i) - if not os.path.exists(name): - break - else: - raise cliapp.AppException('ERROR: too many existing drafts') - - values = { - 'title': args[0], - 'date': time.strftime('%Y-%m-%d %H:%M') - } - f = open(name, 'w') - f.write(template % values) - f.close() - self.edit_file(name) + NewCommand(self).run(args) def drafts_dir(self): return os.path.join(self.settings['source'], 'drafts') -- cgit v1.2.1 From 572b72fb46c81931b16c26085907f4b66c04fcca Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:16:16 +0200 Subject: Move command list to a separate class --- jt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/jt b/jt index 9540d92..65e31f5 100755 --- a/jt +++ b/jt @@ -77,6 +77,13 @@ class NewCommand(Command): self._app.edit_file(name) +class ListCommand(Command): + + def run(self, args): + for draft_id, filename in self.find_drafts(): + print draft_id, self.get_draft_title(filename) or "" + + class JournalTool(cliapp.Application): cmd_synopsis = { @@ -137,9 +144,7 @@ class JournalTool(cliapp.Application): def cmd_list(self, args): '''List journal entry drafts.''' - - for draft_id, filename in self.find_drafts(): - print draft_id, self.get_draft_title(filename) or "" + ListCommand(self).run(args) def find_drafts(self): drafts_dir = self.drafts_dir() -- cgit v1.2.1 From b4f6ae94f5adaf6838a014c39a264c6f187e17b3 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:16:40 +0200 Subject: Fix list command --- jt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jt b/jt index 65e31f5..b2c9a25 100755 --- a/jt +++ b/jt @@ -80,8 +80,8 @@ class NewCommand(Command): class ListCommand(Command): def run(self, args): - for draft_id, filename in self.find_drafts(): - print draft_id, self.get_draft_title(filename) or "" + for draft_id, filename in self._app.find_drafts(): + print draft_id, self._app.get_draft_title(filename) or "" class JournalTool(cliapp.Application): -- cgit v1.2.1 From 0c1cecc2adb685e444e921507caf5b713f9e3d16 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:17:28 +0200 Subject: Move command edit to a separate class --- jt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/jt b/jt index b2c9a25..59e4c46 100755 --- a/jt +++ b/jt @@ -84,6 +84,13 @@ class ListCommand(Command): print draft_id, self._app.get_draft_title(filename) or "" +class EditCommand(Command): + + def run(self, args): + filename = self._app.choose_draft(args) + self._app.edit_file(filename) + + class JournalTool(cliapp.Application): cmd_synopsis = { @@ -168,9 +175,7 @@ class JournalTool(cliapp.Application): def cmd_edit(self, args): '''Edit a draft journal entry.''' - - filename = self.choose_draft(args) - self.edit_file(filename) + EditCommand(self).run(args) def choose_draft(self, args): if len(args) == 0: -- cgit v1.2.1 From 8208026cf7eb3e30217ebd76424378f1afef4cdd Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:18:35 +0200 Subject: Move command attach to a separate class --- jt | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/jt b/jt index 59e4c46..9c54f14 100755 --- a/jt +++ b/jt @@ -91,6 +91,23 @@ class EditCommand(Command): self._app.edit_file(filename) +class AttachCommand(Command): + + def run(self, args): + if len(args) < 2: + raise cliapp.AppException('Usage: journal-note attach ID file...') + + filename = self._app.draft_name(args[0]) + + dirname, ext = os.path.splitext(filename) + assert ext == '.mdwn' + + if not os.path.exists(dirname): + os.mkdir(dirname) + for filename in args[1:]: + shutil.copy(filename, dirname) + + class JournalTool(cliapp.Application): cmd_synopsis = { @@ -195,19 +212,7 @@ class JournalTool(cliapp.Application): def cmd_attach(self, args): '''Attach files to a journal entry draft.''' - - if len(args) < 2: - raise cliapp.AppException('Usage: journal-note attach ID file...') - - filename = self.draft_name(args[0]) - - dirname, ext = os.path.splitext(filename) - assert ext == '.mdwn' - - if not os.path.exists(dirname): - os.mkdir(dirname) - for filename in args[1:]: - shutil.copy(filename, dirname) + AttachCommand(self).run(args) def cmd_remove(self, args): '''Remove a draft.''' -- cgit v1.2.1 From 32774872566e0c29aefec26d8fbc41242afebbef Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:19:24 +0200 Subject: Move command remove to a separate class --- jt | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/jt b/jt index 9c54f14..ad02c62 100755 --- a/jt +++ b/jt @@ -108,6 +108,21 @@ class AttachCommand(Command): shutil.copy(filename, dirname) +class RemoveCommand(Command): + + def run(self, args): + if not args: + raise cliapp.AppException('Usage: journal-note remove ID') + + filename = self._app.draft_name(args[0]) + os.remove(filename) + + dirname, ext = os.path.splitext(filename) + assert ext == '.mdwn' + if os.path.exists(dirname): + shutil.rmtree(dirname) + + class JournalTool(cliapp.Application): cmd_synopsis = { @@ -216,16 +231,7 @@ class JournalTool(cliapp.Application): def cmd_remove(self, args): '''Remove a draft.''' - - if not args: - raise cliapp.AppException('Usage: journal-note remove ID') - filename = self.draft_name(args[0]) - os.remove(filename) - - dirname, ext = os.path.splitext(filename) - assert ext == '.mdwn' - if os.path.exists(dirname): - shutil.rmtree(dirname) + RemoveCommand(self).run(args) def cmd_finish(self, args): '''Publish a draft journal entry.''' -- cgit v1.2.1 From c53a50f3a219d3667af0a8636d180c1efc3cd265 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:20:56 +0200 Subject: Move command finish to a separate class --- jt | 65 +++++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/jt b/jt index ad02c62..3e78621 100755 --- a/jt +++ b/jt @@ -123,6 +123,40 @@ class RemoveCommand(Command): shutil.rmtree(dirname) +class FinishCommand(Command): + + def run(self, args): + draft_mdwn = self._app.choose_draft(args) + draft_attch, ext = os.path.splitext(draft_mdwn) + assert ext == '.mdwn' + + pub_attch = os.path.join( + self._app.published_dir(), self._app.published_basename(draft_mdwn)) + pub_mdwn = pub_attch + '.mdwn' + + if os.path.exists(pub_mdwn): + raise cliapp.AppException('%s already exists' % pub_mdwn) + + if not os.path.exists(self._app.published_dir()): + os.makedirs(self._app.published_dir()) + os.rename(draft_mdwn, pub_mdwn) + if os.path.exists(draft_attch): + os.rename(draft_attch, pub_attch) + + if self._app.settings['git']: + argv = ['git', 'add', pub_mdwn] + if os.path.exists(pub_attch): + argv.append(pub_attch) + cliapp.runcmd(argv, cwd=self._app.settings['source']) + cliapp.runcmd( + ['git', 'commit', '-m', 'Publish log entry'], + cwd=self._app.settings['source']) + if self.settings['push']: + cliapp.runcmd( + ['git', 'push', 'origin', 'HEAD'], + cwd=self._app.settings['source']) + + class JournalTool(cliapp.Application): cmd_synopsis = { @@ -235,36 +269,7 @@ class JournalTool(cliapp.Application): def cmd_finish(self, args): '''Publish a draft journal entry.''' - - draft_mdwn = self.choose_draft(args) - draft_attch, ext = os.path.splitext(draft_mdwn) - assert ext == '.mdwn' - - pub_attch = os.path.join( - self.published_dir(), self.published_basename(draft_mdwn)) - pub_mdwn = pub_attch + '.mdwn' - - if os.path.exists(pub_mdwn): - raise cliapp.AppException('%s already exists' % pub_mdwn) - - if not os.path.exists(self.published_dir()): - os.makedirs(self.published_dir()) - os.rename(draft_mdwn, pub_mdwn) - if os.path.exists(draft_attch): - os.rename(draft_attch, pub_attch) - - if self.settings['git']: - argv = ['git', 'add', pub_mdwn] - if os.path.exists(pub_attch): - argv.append(pub_attch) - cliapp.runcmd(argv, cwd=self.settings['source']) - cliapp.runcmd( - ['git', 'commit', '-m', 'Publish log entry'], - cwd=self.settings['source']) - if self.settings['push']: - cliapp.runcmd( - ['git', 'push', 'origin', 'HEAD'], - cwd=self.settings['source']) + FinishCommand(self).run(args) def published_dir(self): subdirs = { -- cgit v1.2.1 From 70608dbf368a54be4d40c8e3fe6bfa179dd6e12f Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:21:57 +0200 Subject: Move command new-person to a separate class --- jt | 61 ++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/jt b/jt index 3e78621..74673be 100755 --- a/jt +++ b/jt @@ -157,6 +157,39 @@ class FinishCommand(Command): cwd=self._app.settings['source']) +class NewPersonCommand(Command): + + def run(self, args): + if len(args) != 1: + raise cliapp.AppException( + 'Need the name of a person (in Last, First form)') + + def normalise(name): + s = name.lower() + s = ' '.join(s.split(',')) + s = '.'.join(s.split()) + return s + + name = args[0] + basename = normalise(name) + pathname = os.path.join( + self._app.settings['source'], 'people', basename + '.mdwn') + + if os.path.exists(pathname): + raise cliapp.AppException('File %s already exists' % pathname) + + with open(pathname, 'w') as f: + f.write('''\ +[[!meta title="%(name)s"]] + +[[!inline archive=yes pages="link(.)"]] +''' % + { + 'name': name, + 'basename': basename, + }) + + class JournalTool(cliapp.Application): cmd_synopsis = { @@ -312,33 +345,7 @@ class JournalTool(cliapp.Application): ''' - if len(args) != 1: - raise cliapp.AppException( - 'Need the name of a person (in Last, First form)') - - def normalise(name): - s = name.lower() - s = ' '.join(s.split(',')) - s = '.'.join(s.split()) - return s - - name = args[0] - basename = normalise(name) - pathname = os.path.join( - self.settings['source'], 'people', basename + '.mdwn') - - if os.path.exists(pathname): - raise cliapp.AppException('File %s already exists' % pathname) - - with open(pathname, 'w') as f: - f.write('''\ -[[!meta title="%(name)s"]] + NewPersonCommand(self).run(args) -[[!inline archive=yes pages="link(.)"]] -''' % - { - 'name': name, - 'basename': basename, - }) JournalTool(version=__version__).run() -- cgit v1.2.1 From a94a0fb1e26b926cffec54ddfa84dc8f71720b80 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:24:32 +0200 Subject: Move published_dir into FinishCommand --- jt | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/jt b/jt index 74673be..0b12ff9 100755 --- a/jt +++ b/jt @@ -131,14 +131,14 @@ class FinishCommand(Command): assert ext == '.mdwn' pub_attch = os.path.join( - self._app.published_dir(), self._app.published_basename(draft_mdwn)) + self.published_dir(), self._app.published_basename(draft_mdwn)) pub_mdwn = pub_attch + '.mdwn' if os.path.exists(pub_mdwn): raise cliapp.AppException('%s already exists' % pub_mdwn) - if not os.path.exists(self._app.published_dir()): - os.makedirs(self._app.published_dir()) + if not os.path.exists(self.published_dir()): + os.makedirs(self.published_dir()) os.rename(draft_mdwn, pub_mdwn) if os.path.exists(draft_attch): os.rename(draft_attch, pub_attch) @@ -156,6 +156,16 @@ class FinishCommand(Command): ['git', 'push', 'origin', 'HEAD'], cwd=self._app.settings['source']) + def published_dir(self): + subdirs = { + 'liw': 'notes', + 'ct': 'log/%d' % time.localtime().tm_year, + 'pkb': time.strftime('notes/%Y/%m/%d'), + } + + subdir = subdirs[self._app.settings['layout']] + return os.path.join(self._app.settings['source'], subdir) + class NewPersonCommand(Command): @@ -304,16 +314,6 @@ class JournalTool(cliapp.Application): '''Publish a draft journal entry.''' FinishCommand(self).run(args) - def published_dir(self): - subdirs = { - 'liw': 'notes', - 'ct': 'log/%d' % time.localtime().tm_year, - 'pkb': time.strftime('notes/%Y/%m/%d'), - } - - subdir = subdirs[self.settings['layout']] - return os.path.join(self.settings['source'], subdir) - def published_basename(self, draft_mdwn): if self.settings['layout'] in ('liw', 'ct'): basename = time.strftime('%Y-%m-%d-%H:%M:%S') -- cgit v1.2.1 From 3270896ac47d7096468d921d82a7eca176add476 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:25:42 +0200 Subject: Move published_basename into FinishCommand --- jt | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/jt b/jt index 0b12ff9..951a3f6 100755 --- a/jt +++ b/jt @@ -131,7 +131,7 @@ class FinishCommand(Command): assert ext == '.mdwn' pub_attch = os.path.join( - self.published_dir(), self._app.published_basename(draft_mdwn)) + self.published_dir(), self.published_basename(draft_mdwn)) pub_mdwn = pub_attch + '.mdwn' if os.path.exists(pub_mdwn): @@ -166,6 +166,20 @@ class FinishCommand(Command): subdir = subdirs[self._app.settings['layout']] return os.path.join(self._app.settings['source'], subdir) + def published_basename(self, draft_mdwn): + if self._app.settings['layout'] in ('liw', 'ct'): + basename = time.strftime('%Y-%m-%d-%H:%M:%S') + elif self._app.settings['layout'] == 'pkb': + title = self._app.get_draft_title(draft_mdwn) + if not title: + raise Exception("%s has no title" % draft_mdwn) + basename = self._app.summarise_title(title) + else: + raise Exception( + 'Setting --layout=%s is unknown' % self._app.settings['layout']) + + return basename + class NewPersonCommand(Command): @@ -314,20 +328,6 @@ class JournalTool(cliapp.Application): '''Publish a draft journal entry.''' FinishCommand(self).run(args) - def published_basename(self, draft_mdwn): - if self.settings['layout'] in ('liw', 'ct'): - basename = time.strftime('%Y-%m-%d-%H:%M:%S') - elif self.settings['layout'] == 'pkb': - title = self.get_draft_title(draft_mdwn) - if not title: - raise Exception("%s has no title" % draft_mdwn) - basename = self.summarise_title(title) - else: - raise Exception( - 'Setting --layout=%s is unknown' % self.settings['layout']) - - return basename - def summarise_title(self, title): basename = '' acceptable = set(string.ascii_letters + string.digits + '-_') -- cgit v1.2.1 From 00200c2eae827f0e1b867c6946387fe351608382 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:29:27 +0200 Subject: Split NewCommand.run into smaller methods --- jt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/jt b/jt index 951a3f6..7b89c0a 100755 --- a/jt +++ b/jt @@ -57,24 +57,31 @@ class NewCommand(Command): self._app.settings.require('source') self._app.settings.require('layout') + self._create_drafts_dir() + name = self._pick_draft_name() + self._create_draft(name, args[0]) + self._app.edit_file(name) + + def _create_drafts_dir(self): if not os.path.exists(self._app.drafts_dir()): os.mkdir(self._app.drafts_dir()) + def _pick_draft_name(self): for i in range(1000): name = self._app.draft_name(i) if not os.path.exists(name): - break + return name else: raise cliapp.AppException('ERROR: too many existing drafts') + def _create_draft(self, name, title): values = { - 'title': args[0], + 'title': title, 'date': time.strftime('%Y-%m-%d %H:%M') } f = open(name, 'w') f.write(template % values) f.close() - self._app.edit_file(name) class ListCommand(Command): -- cgit v1.2.1 From 4d6789a71655d5a650cebdc365dced66cf005aac Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:31:08 +0200 Subject: Simplify by turning _create_drafts_dir into _create_dir_if_missing --- jt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/jt b/jt index 7b89c0a..4dcd6d6 100755 --- a/jt +++ b/jt @@ -57,14 +57,15 @@ class NewCommand(Command): self._app.settings.require('source') self._app.settings.require('layout') - self._create_drafts_dir() + drafts_dir = self._app.drafts_dir() + self._create_dir_if_missing(drafts_dir) name = self._pick_draft_name() self._create_draft(name, args[0]) self._app.edit_file(name) - def _create_drafts_dir(self): - if not os.path.exists(self._app.drafts_dir()): - os.mkdir(self._app.drafts_dir()) + def _create_dir_if_missing(self, dirname): + if not os.path.exists(dirname): + os.mkdir(dirname) def _pick_draft_name(self): for i in range(1000): -- cgit v1.2.1 From 2ab7f63d39dc3aa8602091ed0f11e7448d48e605 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:32:49 +0200 Subject: Use with open() instead of open/close explicitly --- jt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/jt b/jt index 4dcd6d6..5390883 100755 --- a/jt +++ b/jt @@ -80,9 +80,8 @@ class NewCommand(Command): 'title': title, 'date': time.strftime('%Y-%m-%d %H:%M') } - f = open(name, 'w') - f.write(template % values) - f.close() + with open(name, 'w') as f: + f.write(template % values) class ListCommand(Command): -- cgit v1.2.1 From db443df0435113323c7e39b254aaf8769d44f6b3 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:38:12 +0200 Subject: Add a DraftsDir helper class --- jt | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/jt b/jt index 5390883..757bcd4 100755 --- a/jt +++ b/jt @@ -39,6 +39,19 @@ template = '''\ ''' +class DraftsDirectory(object): + + def __init__(self, dirname): + self.dirname = dirname + + def create_if_missing(self): + if not os.path.exists(self.dirname): + os.mkdir(self.dirname) + + def get_draft_pathname(self, draft_number): + return os.path.join(self.dirname, '%s.mdwn' % draft_number) + + class Command(object): def __init__(self, app): @@ -57,30 +70,26 @@ class NewCommand(Command): self._app.settings.require('source') self._app.settings.require('layout') - drafts_dir = self._app.drafts_dir() - self._create_dir_if_missing(drafts_dir) - name = self._pick_draft_name() - self._create_draft(name, args[0]) - self._app.edit_file(name) + drafts_dir = DraftsDirectory(self._app.drafts_dir()) + drafts_dir.create_if_missing() + pathname = self._pick_draft_pathname(drafts_dir) + self._create_draft(pathname, args[0]) + self._app.edit_file(pathname) - def _create_dir_if_missing(self, dirname): - if not os.path.exists(dirname): - os.mkdir(dirname) - - def _pick_draft_name(self): + def _pick_draft_pathname(self, drafts_dir): for i in range(1000): - name = self._app.draft_name(i) - if not os.path.exists(name): - return name + pathname = drafts_dir.get_draft_pathname(i) + if not os.path.exists(pathname): + return pathname else: raise cliapp.AppException('ERROR: too many existing drafts') - def _create_draft(self, name, title): + def _create_draft(self, pathname, title): values = { 'title': title, 'date': time.strftime('%Y-%m-%d %H:%M') } - with open(name, 'w') as f: + with open(pathname, 'w') as f: f.write(template % values) -- cgit v1.2.1 From 46840a56dd8837576c22107ee615efc96df15747 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:39:26 +0200 Subject: Use DraftsDir in AttachCommand --- jt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jt b/jt index 757bcd4..37d21b1 100755 --- a/jt +++ b/jt @@ -113,7 +113,8 @@ class AttachCommand(Command): if len(args) < 2: raise cliapp.AppException('Usage: journal-note attach ID file...') - filename = self._app.draft_name(args[0]) + drafts_dir = DraftsDir(self._app.draft_dir()) + filename = drafts_dir.get_draft_pathname(args[0]) dirname, ext = os.path.splitext(filename) assert ext == '.mdwn' -- cgit v1.2.1 From ce3b5e3d1d31c58885c040cf0a963aebe63f1b9b Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:40:35 +0200 Subject: Use DraftsDir in RemoveCommand --- jt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/jt b/jt index 37d21b1..cd47821 100755 --- a/jt +++ b/jt @@ -113,7 +113,7 @@ class AttachCommand(Command): if len(args) < 2: raise cliapp.AppException('Usage: journal-note attach ID file...') - drafts_dir = DraftsDir(self._app.draft_dir()) + drafts_dir = DraftsDirectory(self._app.draft_dir()) filename = drafts_dir.get_draft_pathname(args[0]) dirname, ext = os.path.splitext(filename) @@ -131,7 +131,8 @@ class RemoveCommand(Command): if not args: raise cliapp.AppException('Usage: journal-note remove ID') - filename = self._app.draft_name(args[0]) + drafts_dir = DraftsDirectory(self._app.drafts_dir()) + filename = drafts_dir.get_draft_pathname(args[0]) os.remove(filename) dirname, ext = os.path.splitext(filename) -- cgit v1.2.1 From 36c587f30064c30ded69085cd1c00e4c183978e6 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:44:02 +0200 Subject: Add DraftsDirectory.get_drafts --- jt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/jt b/jt index cd47821..29932a6 100755 --- a/jt +++ b/jt @@ -51,6 +51,13 @@ class DraftsDirectory(object): def get_draft_pathname(self, draft_number): return os.path.join(self.dirname, '%s.mdwn' % draft_number) + def get_drafts(self): + for basename in os.listdir(self.dirname): + # .# is what Emacs autosave files start with. + if basename.endswith('.mdwn') and not basename.startswith('.#'): + yield basename[:-len('.mdwn')], os.path.join(self.dirname, basename) + + class Command(object): @@ -96,7 +103,8 @@ class NewCommand(Command): class ListCommand(Command): def run(self, args): - for draft_id, filename in self._app.find_drafts(): + drafts_dir = DraftsDirectory(self._app.drafts_dir()) + for draft_id, filename in drafts_dir.get_drafts(): print draft_id, self._app.get_draft_title(filename) or "" -- cgit v1.2.1 From 2323256789d0868f2d62e89b03b4373ddb5856fd Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:45:59 +0200 Subject: Remove empty line --- jt | 1 - 1 file changed, 1 deletion(-) diff --git a/jt b/jt index 29932a6..5951973 100755 --- a/jt +++ b/jt @@ -58,7 +58,6 @@ class DraftsDirectory(object): yield basename[:-len('.mdwn')], os.path.join(self.dirname, basename) - class Command(object): def __init__(self, app): -- cgit v1.2.1 From b8d2bb0c42de171117f346751061da9a34c32281 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:49:32 +0200 Subject: Add DraftsDirectory.get_draft_attachments_dirname --- jt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/jt b/jt index 5951973..b8813bc 100755 --- a/jt +++ b/jt @@ -51,6 +51,9 @@ class DraftsDirectory(object): def get_draft_pathname(self, draft_number): return os.path.join(self.dirname, '%s.mdwn' % draft_number) + def get_draft_attachment_dirname(self, draft_number): + return os.path.join(self.dirname, '%s' % draft_number) + def get_drafts(self): for basename in os.listdir(self.dirname): # .# is what Emacs autosave files start with. @@ -121,11 +124,7 @@ class AttachCommand(Command): raise cliapp.AppException('Usage: journal-note attach ID file...') drafts_dir = DraftsDirectory(self._app.draft_dir()) - filename = drafts_dir.get_draft_pathname(args[0]) - - dirname, ext = os.path.splitext(filename) - assert ext == '.mdwn' - + dirname = drafts_dir.get_draft_attachments_dirname(args[0]) if not os.path.exists(dirname): os.mkdir(dirname) for filename in args[1:]: -- cgit v1.2.1 From 4a85d5b145768887cfa73619f1ddf41a31f9a03b Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:51:29 +0200 Subject: Move draft removal into DraftsDirectory --- jt | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/jt b/jt index b8813bc..4073e85 100755 --- a/jt +++ b/jt @@ -51,7 +51,7 @@ class DraftsDirectory(object): def get_draft_pathname(self, draft_number): return os.path.join(self.dirname, '%s.mdwn' % draft_number) - def get_draft_attachment_dirname(self, draft_number): + def get_draft_attachments_dirname(self, draft_number): return os.path.join(self.dirname, '%s' % draft_number) def get_drafts(self): @@ -60,6 +60,14 @@ class DraftsDirectory(object): if basename.endswith('.mdwn') and not basename.startswith('.#'): yield basename[:-len('.mdwn')], os.path.join(self.dirname, basename) + def remove_draft(self, draft_number): + filename = self.get_draft_pathname(draft_number) + os.remove(filename) + + dirname = self.get_draft_attachments_dirname(draft_number) + if os.path.exists(dirname): + shutil.rmtree(dirname) + class Command(object): @@ -138,13 +146,7 @@ class RemoveCommand(Command): raise cliapp.AppException('Usage: journal-note remove ID') drafts_dir = DraftsDirectory(self._app.drafts_dir()) - filename = drafts_dir.get_draft_pathname(args[0]) - os.remove(filename) - - dirname, ext = os.path.splitext(filename) - assert ext == '.mdwn' - if os.path.exists(dirname): - shutil.rmtree(dirname) + drafts_dir.remove_draft(args[0]) class FinishCommand(Command): -- cgit v1.2.1 From e54ace14101b2751c70ea0815193ac15cfe95ea7 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:54:40 +0200 Subject: Add DraftsDirectory.create_draft --- jt | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/jt b/jt index 4073e85..c9a5954 100755 --- a/jt +++ b/jt @@ -54,6 +54,11 @@ class DraftsDirectory(object): def get_draft_attachments_dirname(self, draft_number): return os.path.join(self.dirname, '%s' % draft_number) + def create_draft(self, draft_number, content): + pathname = self.get_draft_pathname(draft_number) + with open(pathname, 'w') as f: + f.write(content) + def get_drafts(self): for basename in os.listdir(self.dirname): # .# is what Emacs autosave files start with. @@ -89,25 +94,25 @@ class NewCommand(Command): drafts_dir = DraftsDirectory(self._app.drafts_dir()) drafts_dir.create_if_missing() - pathname = self._pick_draft_pathname(drafts_dir) - self._create_draft(pathname, args[0]) - self._app.edit_file(pathname) + draft_number = self._pick_draft_number(drafts_dir) + self._create_draft(drafts_dir, draft_number, args[0]) + self._app.edit_file(drafts_dir.get_draft_pathname(draft_number)) - def _pick_draft_pathname(self, drafts_dir): + def _pick_draft_number(self, drafts_dir): for i in range(1000): pathname = drafts_dir.get_draft_pathname(i) if not os.path.exists(pathname): - return pathname + return i else: raise cliapp.AppException('ERROR: too many existing drafts') - def _create_draft(self, pathname, title): + def _create_draft(self, drafts_dir, draft_number, title): values = { 'title': title, 'date': time.strftime('%Y-%m-%d %H:%M') } - with open(pathname, 'w') as f: - f.write(template % values) + content = template % values + drafts_dir.create_draft(draft_number, content) class ListCommand(Command): -- cgit v1.2.1 From 1c37e1e047edb5f7c46d41de19817311e209fddd Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:57:30 +0200 Subject: Make DraftsDirectory.create_draft pick the number --- jt | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/jt b/jt index c9a5954..d1be34d 100755 --- a/jt +++ b/jt @@ -54,10 +54,20 @@ class DraftsDirectory(object): def get_draft_attachments_dirname(self, draft_number): return os.path.join(self.dirname, '%s' % draft_number) - def create_draft(self, draft_number, content): + def create_draft(self, content): + draft_number = self._pick_available_draft_number() pathname = self.get_draft_pathname(draft_number) with open(pathname, 'w') as f: f.write(content) + return draft_number + + def _pick_available_draft_number(self): + for i in range(1000): + pathname = self.get_draft_pathname(i) + if not os.path.exists(pathname): + return i + else: + raise cliapp.AppException('ERROR: too many existing drafts') def get_drafts(self): for basename in os.listdir(self.dirname): @@ -94,25 +104,16 @@ class NewCommand(Command): drafts_dir = DraftsDirectory(self._app.drafts_dir()) drafts_dir.create_if_missing() - draft_number = self._pick_draft_number(drafts_dir) - self._create_draft(drafts_dir, draft_number, args[0]) + draft_number = self._create_draft(drafts_dir, args[0]) self._app.edit_file(drafts_dir.get_draft_pathname(draft_number)) - def _pick_draft_number(self, drafts_dir): - for i in range(1000): - pathname = drafts_dir.get_draft_pathname(i) - if not os.path.exists(pathname): - return i - else: - raise cliapp.AppException('ERROR: too many existing drafts') - - def _create_draft(self, drafts_dir, draft_number, title): + def _create_draft(self, drafts_dir, title): values = { 'title': title, 'date': time.strftime('%Y-%m-%d %H:%M') } content = template % values - drafts_dir.create_draft(draft_number, content) + return drafts_dir.create_draft(content) class ListCommand(Command): -- cgit v1.2.1 From 974e0db3e39a5d037cc0c60411aa6f12f8f2c115 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:58:36 +0200 Subject: Refactor out an unnecessary method --- jt | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/jt b/jt index d1be34d..13dc739 100755 --- a/jt +++ b/jt @@ -102,18 +102,15 @@ class NewCommand(Command): self._app.settings.require('source') self._app.settings.require('layout') - drafts_dir = DraftsDirectory(self._app.drafts_dir()) - drafts_dir.create_if_missing() - draft_number = self._create_draft(drafts_dir, args[0]) - self._app.edit_file(drafts_dir.get_draft_pathname(draft_number)) - - def _create_draft(self, drafts_dir, title): values = { - 'title': title, + 'title': args[0], 'date': time.strftime('%Y-%m-%d %H:%M') } - content = template % values - return drafts_dir.create_draft(content) + + drafts_dir = DraftsDirectory(self._app.drafts_dir()) + drafts_dir.create_if_missing() + draft_number = drafts_dir.create_draft(template % values) + self._app.edit_file(drafts_dir.get_draft_pathname(draft_number)) class ListCommand(Command): -- cgit v1.2.1 From 59ee5ba950dca96d64ef11999e266da661edf8ba Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 19:10:20 +0200 Subject: Make choose_draft use DraftsDirectory --- jt | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/jt b/jt index 13dc739..80c7041 100755 --- a/jt +++ b/jt @@ -124,8 +124,11 @@ class ListCommand(Command): class EditCommand(Command): def run(self, args): - filename = self._app.choose_draft(args) - self._app.edit_file(filename) + if len(args) > 1: + raise cliapp.AppException('Must be given at most one draft ID') + drafts_dir = DraftsDirectory(self._app.drafts_dir()) + pathmame = self._app.choose_draft(drafts_dir, args) + self._app.edit_file(pathname) class AttachCommand(Command): @@ -155,7 +158,8 @@ class RemoveCommand(Command): class FinishCommand(Command): def run(self, args): - draft_mdwn = self._app.choose_draft(args) + drafts_dir = DraftsDirectory(self._app.drafts_dir()) + draft_mdwn = self._app.choose_draft(drafts_dir, args) draft_attch, ext = os.path.splitext(draft_mdwn) assert ext == '.mdwn' @@ -329,21 +333,23 @@ class JournalTool(cliapp.Application): '''Edit a draft journal entry.''' EditCommand(self).run(args) - def choose_draft(self, args): + def choose_draft(self, drafts_dir, args): if len(args) == 0: - drafts = list(self.find_drafts()) + drafts = list(drafts_dir.get_drafts()) if len(drafts) == 1: draft_id, filename = drafts[0] return filename + elif len(drafts) == 0: + raise cliapp.AppException('No drafts to choose from') else: raise cliapp.AppException('Cannot choose entry draft automatically') elif len(args) == 1: - filename = self.draft_name(args[0]) - if not os.path.exists(filename): + pathname = drafts_dir.get_draft_pathname(args[0]) + if not os.path.exists(pathname): raise cliapp.AppException('draft %s does not exist' % args[0]) - return filename + return pathname elif len(args) > 1: - raise cliapp.AppException('Must give only one draft number') + raise cliapp.AppException('Must give at most one draft number') def cmd_attach(self, args): '''Attach files to a journal entry draft.''' -- cgit v1.2.1 From f4788df9c39664dfcf38c599f6d9acab6b401c92 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 19:10:48 +0200 Subject: Remove now-unused draft_name method --- jt | 3 --- 1 file changed, 3 deletions(-) diff --git a/jt b/jt index 80c7041..67220e5 100755 --- a/jt +++ b/jt @@ -297,9 +297,6 @@ class JournalTool(cliapp.Application): def drafts_dir(self): return os.path.join(self.settings['source'], 'drafts') - def draft_name(self, draft_id): - return os.path.join(self.drafts_dir(), '%s.mdwn' % draft_id) - def edit_file(self, pathname): safe_pathname = cliapp.shell_quote(pathname) cmdline = ['sh', '-c', self.settings['editor'] % pathname] -- cgit v1.2.1 From 94c6c0e24d8debd6d562af2fa0d8ffcf4dfd69b6 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 19:11:35 +0200 Subject: Remove now-unused find_drafts method --- jt | 7 ------- 1 file changed, 7 deletions(-) diff --git a/jt b/jt index 67220e5..16108c9 100755 --- a/jt +++ b/jt @@ -306,13 +306,6 @@ class JournalTool(cliapp.Application): '''List journal entry drafts.''' ListCommand(self).run(args) - def find_drafts(self): - drafts_dir = self.drafts_dir() - for name in os.listdir(drafts_dir): - # .# is what Emacs autosave files start with. - if name.endswith('.mdwn') and not name.startswith('.#'): - yield name[:-len('.mdwn')], os.path.join(drafts_dir, name) - def get_draft_title(self, filename): with open(filename) as f: for line in f: -- cgit v1.2.1 From dedb09a52aec341265cd77c760d51a6ac32a2442 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 19:15:00 +0200 Subject: Make choose_draft return draft number as well --- jt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/jt b/jt index 16108c9..34f2bee 100755 --- a/jt +++ b/jt @@ -127,7 +127,7 @@ class EditCommand(Command): if len(args) > 1: raise cliapp.AppException('Must be given at most one draft ID') drafts_dir = DraftsDirectory(self._app.drafts_dir()) - pathmame = self._app.choose_draft(drafts_dir, args) + draft_number, pathname = self._app.choose_draft(drafts_dir, args) self._app.edit_file(pathname) @@ -159,7 +159,7 @@ class FinishCommand(Command): def run(self, args): drafts_dir = DraftsDirectory(self._app.drafts_dir()) - draft_mdwn = self._app.choose_draft(drafts_dir, args) + draft_number, draft_mdwn = self._app.choose_draft(drafts_dir, args) draft_attch, ext = os.path.splitext(draft_mdwn) assert ext == '.mdwn' @@ -327,8 +327,8 @@ class JournalTool(cliapp.Application): if len(args) == 0: drafts = list(drafts_dir.get_drafts()) if len(drafts) == 1: - draft_id, filename = drafts[0] - return filename + draft_number, filename = drafts[0] + return draft_number, filename elif len(drafts) == 0: raise cliapp.AppException('No drafts to choose from') else: @@ -337,7 +337,7 @@ class JournalTool(cliapp.Application): pathname = drafts_dir.get_draft_pathname(args[0]) if not os.path.exists(pathname): raise cliapp.AppException('draft %s does not exist' % args[0]) - return pathname + return args[0], pathname elif len(args) > 1: raise cliapp.AppException('Must give at most one draft number') -- cgit v1.2.1 From 5c9d7f5bf67807b763611c461eeaf8ad9eff728c Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 19:15:38 +0200 Subject: Use draft_id instead of draft_number --- jt | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/jt b/jt index 34f2bee..73815f2 100755 --- a/jt +++ b/jt @@ -48,20 +48,20 @@ class DraftsDirectory(object): if not os.path.exists(self.dirname): os.mkdir(self.dirname) - def get_draft_pathname(self, draft_number): - return os.path.join(self.dirname, '%s.mdwn' % draft_number) + def get_draft_pathname(self, draft_id): + return os.path.join(self.dirname, '%s.mdwn' % draft_id) - def get_draft_attachments_dirname(self, draft_number): - return os.path.join(self.dirname, '%s' % draft_number) + def get_draft_attachments_dirname(self, draft_id): + return os.path.join(self.dirname, '%s' % draft_id) def create_draft(self, content): - draft_number = self._pick_available_draft_number() - pathname = self.get_draft_pathname(draft_number) + draft_id = self._pick_available_draft_id() + pathname = self.get_draft_pathname(draft_id) with open(pathname, 'w') as f: f.write(content) - return draft_number + return draft_id - def _pick_available_draft_number(self): + def _pick_available_draft_id(self): for i in range(1000): pathname = self.get_draft_pathname(i) if not os.path.exists(pathname): @@ -75,11 +75,11 @@ class DraftsDirectory(object): if basename.endswith('.mdwn') and not basename.startswith('.#'): yield basename[:-len('.mdwn')], os.path.join(self.dirname, basename) - def remove_draft(self, draft_number): - filename = self.get_draft_pathname(draft_number) + def remove_draft(self, draft_id): + filename = self.get_draft_pathname(draft_id) os.remove(filename) - dirname = self.get_draft_attachments_dirname(draft_number) + dirname = self.get_draft_attachments_dirname(draft_id) if os.path.exists(dirname): shutil.rmtree(dirname) @@ -109,8 +109,8 @@ class NewCommand(Command): drafts_dir = DraftsDirectory(self._app.drafts_dir()) drafts_dir.create_if_missing() - draft_number = drafts_dir.create_draft(template % values) - self._app.edit_file(drafts_dir.get_draft_pathname(draft_number)) + draft_id = drafts_dir.create_draft(template % values) + self._app.edit_file(drafts_dir.get_draft_pathname(draft_id)) class ListCommand(Command): @@ -127,7 +127,7 @@ class EditCommand(Command): if len(args) > 1: raise cliapp.AppException('Must be given at most one draft ID') drafts_dir = DraftsDirectory(self._app.drafts_dir()) - draft_number, pathname = self._app.choose_draft(drafts_dir, args) + draft_id, pathname = self._app.choose_draft(drafts_dir, args) self._app.edit_file(pathname) @@ -159,7 +159,7 @@ class FinishCommand(Command): def run(self, args): drafts_dir = DraftsDirectory(self._app.drafts_dir()) - draft_number, draft_mdwn = self._app.choose_draft(drafts_dir, args) + draft_id, draft_mdwn = self._app.choose_draft(drafts_dir, args) draft_attch, ext = os.path.splitext(draft_mdwn) assert ext == '.mdwn' @@ -327,8 +327,8 @@ class JournalTool(cliapp.Application): if len(args) == 0: drafts = list(drafts_dir.get_drafts()) if len(drafts) == 1: - draft_number, filename = drafts[0] - return draft_number, filename + draft_id, filename = drafts[0] + return draft_id, filename elif len(drafts) == 0: raise cliapp.AppException('No drafts to choose from') else: -- cgit v1.2.1 From 9e03044374599b209142fc0a381bb1353cc8d85b Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 19:16:28 +0200 Subject: Remove empty line --- jt | 1 - 1 file changed, 1 deletion(-) diff --git a/jt b/jt index 73815f2..42ea0da 100755 --- a/jt +++ b/jt @@ -150,7 +150,6 @@ class RemoveCommand(Command): def run(self, args): if not args: raise cliapp.AppException('Usage: journal-note remove ID') - drafts_dir = DraftsDirectory(self._app.drafts_dir()) drafts_dir.remove_draft(args[0]) -- cgit v1.2.1 From 9811a5fc00a332e29ec7671aca43682b28809609 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 19:18:20 +0200 Subject: Don't guess attachments dirname, use interface for it --- jt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jt b/jt index 42ea0da..c1d292f 100755 --- a/jt +++ b/jt @@ -159,8 +159,7 @@ class FinishCommand(Command): def run(self, args): drafts_dir = DraftsDirectory(self._app.drafts_dir()) draft_id, draft_mdwn = self._app.choose_draft(drafts_dir, args) - draft_attch, ext = os.path.splitext(draft_mdwn) - assert ext == '.mdwn' + draft_attch = drafts_dir.get_draft_attachments_dirname(draft_id) pub_attch = os.path.join( self.published_dir(), self.published_basename(draft_mdwn)) -- cgit v1.2.1 From 7910e7d7cdeae077c7c80f7618b8afb0b2f7c046 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 19:22:48 +0200 Subject: Move git stuff into helper methods --- jt | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/jt b/jt index c1d292f..8e3cf02 100755 --- a/jt +++ b/jt @@ -175,17 +175,12 @@ class FinishCommand(Command): os.rename(draft_attch, pub_attch) if self._app.settings['git']: - argv = ['git', 'add', pub_mdwn] if os.path.exists(pub_attch): - argv.append(pub_attch) - cliapp.runcmd(argv, cwd=self._app.settings['source']) - cliapp.runcmd( - ['git', 'commit', '-m', 'Publish log entry'], - cwd=self._app.settings['source']) - if self.settings['push']: - cliapp.runcmd( - ['git', 'push', 'origin', 'HEAD'], - cwd=self._app.settings['source']) + self.commit_to_git([pub_mdwn, pub_attch]) + else: + self.commit_to_git([pub_mdwn]) + if self._app.settings['push']: + self.push_git() def published_dir(self): subdirs = { @@ -211,6 +206,20 @@ class FinishCommand(Command): return basename + def commit_to_git(self, pathnames): + cliapp.runcmd( + ['git', 'add'] + pathname, + cwd=self._app.settings['source']) + + cliapp.runcmd( + ['git', 'commit', '-m', 'Publish log entry'], + cwd=self._app.settings['source']) + + def push_git(self): + cliapp.runcmd( + ['git', 'push', 'origin', 'HEAD'], + cwd=self._app.settings['source']) + class NewPersonCommand(Command): -- cgit v1.2.1 From 3f49554a438bc153852d1dacc1db54e78a303c12 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 19:23:36 +0200 Subject: Make helper methods private --- jt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/jt b/jt index 8e3cf02..6b82994 100755 --- a/jt +++ b/jt @@ -162,14 +162,14 @@ class FinishCommand(Command): draft_attch = drafts_dir.get_draft_attachments_dirname(draft_id) pub_attch = os.path.join( - self.published_dir(), self.published_basename(draft_mdwn)) + self._published_dir(), self._published_basename(draft_mdwn)) pub_mdwn = pub_attch + '.mdwn' if os.path.exists(pub_mdwn): raise cliapp.AppException('%s already exists' % pub_mdwn) - if not os.path.exists(self.published_dir()): - os.makedirs(self.published_dir()) + if not os.path.exists(self._published_dir()): + os.makedirs(self._published_dir()) os.rename(draft_mdwn, pub_mdwn) if os.path.exists(draft_attch): os.rename(draft_attch, pub_attch) @@ -182,7 +182,7 @@ class FinishCommand(Command): if self._app.settings['push']: self.push_git() - def published_dir(self): + def _published_dir(self): subdirs = { 'liw': 'notes', 'ct': 'log/%d' % time.localtime().tm_year, @@ -192,7 +192,7 @@ class FinishCommand(Command): subdir = subdirs[self._app.settings['layout']] return os.path.join(self._app.settings['source'], subdir) - def published_basename(self, draft_mdwn): + def _published_basename(self, draft_mdwn): if self._app.settings['layout'] in ('liw', 'ct'): basename = time.strftime('%Y-%m-%d-%H:%M:%S') elif self._app.settings['layout'] == 'pkb': @@ -206,7 +206,7 @@ class FinishCommand(Command): return basename - def commit_to_git(self, pathnames): + def _commit_to_git(self, pathnames): cliapp.runcmd( ['git', 'add'] + pathname, cwd=self._app.settings['source']) @@ -215,7 +215,7 @@ class FinishCommand(Command): ['git', 'commit', '-m', 'Publish log entry'], cwd=self._app.settings['source']) - def push_git(self): + def _push_git(self): cliapp.runcmd( ['git', 'push', 'origin', 'HEAD'], cwd=self._app.settings['source']) -- cgit v1.2.1