summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2014-11-22 18:38:12 +0200
committerLars Wirzenius <liw@liw.fi>2014-11-22 18:38:12 +0200
commitdb443df0435113323c7e39b254aaf8769d44f6b3 (patch)
tree09b2a98b8677406e1d45c58350b9d04d1e33a1eb
parent2ab7f63d39dc3aa8602091ed0f11e7448d48e605 (diff)
downloadjt-db443df0435113323c7e39b254aaf8769d44f6b3.tar.gz
Add a DraftsDir helper class
-rwxr-xr-xjt39
1 files 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)