summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2014-11-22 18:57:30 +0200
committerLars Wirzenius <liw@liw.fi>2014-11-22 18:57:30 +0200
commit1c37e1e047edb5f7c46d41de19817311e209fddd (patch)
tree13efce350dfece7f337b3e90b011aae240c07de5
parente54ace14101b2751c70ea0815193ac15cfe95ea7 (diff)
downloadjt-1c37e1e047edb5f7c46d41de19817311e209fddd.tar.gz
Make DraftsDirectory.create_draft pick the number
-rwxr-xr-xjt27
1 files 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):