diff options
-rw-r--r-- | cli/cli.py | 45 | ||||
-rwxr-xr-x | pyblog | 41 |
2 files changed, 46 insertions, 40 deletions
@@ -3,6 +3,12 @@ import os import subprocess +import sys + +from config.config import * + +from utils import utils + from generators import generators @@ -32,3 +38,42 @@ def edit_post_with_editor(path): else: editor = "vi" subprocess.call([editor, path]) + + +def new_post(title): + """Create a new post with metadata pre-filled. + + The path to the new post is printed to stdout. + + Returns + ------- + 0 + On success. + + """ + date = utils.current_datetime() + filename_date = date.strftime("%Y-%m-%d") + iso_date = date.isoformat() + display_date = "%s %d, %d" % (date.strftime("%B"), date.day, date.year) + title_sanitized = utils.sanitize(title) + filename = "%s-%s.md" % (filename_date, title_sanitized) + fullpath = os.path.join(POSTSDIR, filename) + if not os.path.isdir(POSTSDIR): + if os.path.exists(POSTSDIR): + os.remove(POSTSDIR) + os.mkdir(POSTSDIR, mode=0o755) + if os.path.exists(fullpath): + sys.stderr.write("%serror: '%s' already exists, please pick a different title%s\n" % + (RED, fullpath, RESET)) + return 1 + with open(fullpath, 'w', encoding='utf-8') as newpost: + newpost.write("---\n") + newpost.write('title: "%s"\n' % title) + newpost.write("date: %s\n" % iso_date) + newpost.write("date_display: %s\n" % display_date) + newpost.write("---\n\n") + sys.stderr.write("New post created in:\n") + print(fullpath) + edit_post_with_editor(fullpath) + + return 0 @@ -53,48 +53,9 @@ from generators import generators from cli import cli -def new_post(title): - """Create a new post with metadata pre-filled. - - The path to the new post is printed to stdout. - - Returns - ------- - 0 - On success. - - """ - date = utils.current_datetime() - filename_date = date.strftime("%Y-%m-%d") - iso_date = date.isoformat() - display_date = "%s %d, %d" % (date.strftime("%B"), date.day, date.year) - title_sanitized = utils.sanitize(title) - filename = "%s-%s.md" % (filename_date, title_sanitized) - fullpath = os.path.join(POSTSDIR, filename) - if not os.path.isdir(POSTSDIR): - if os.path.exists(POSTSDIR): - os.remove(POSTSDIR) - os.mkdir(POSTSDIR, mode=0o755) - if os.path.exists(fullpath): - sys.stderr.write("%serror: '%s' already exists, please pick a different title%s\n" % - (RED, fullpath, RESET)) - return 1 - with open(fullpath, 'w', encoding='utf-8') as newpost: - newpost.write("---\n") - newpost.write('title: "%s"\n' % title) - newpost.write("date: %s\n" % iso_date) - newpost.write("date_display: %s\n" % display_date) - newpost.write("---\n\n") - sys.stderr.write("New post created in:\n") - print(fullpath) - cli.edit_post_with_editor(fullpath) - - return 0 - - def new_post_cli(args): """CLI wrapper around new_post.""" - new_post(args.title) + cli.new_post(args.title) def touch(filename): |