Source code for nefelibata.cli.new
# -*- coding: utf-8 -*-
import logging
import os
from pathlib import Path
from subprocess import call
from nefelibata import new_post
from nefelibata.utils import sanitize
__author__ = "Beto Dealmeida"
__copyright__ = "Beto Dealmeida"
__license__ = "mit"
_logger = logging.getLogger(__name__)
[docs]def run(root: Path, directory: str) -> None:
"""Create a new post and open editor.
"""
_logger.info("Creating new directory")
title = directory
directory = sanitize(directory)
target = root / "posts" / directory
if target.exists():
raise IOError("Directory already exists!")
target.mkdir()
os.chdir(target)
_logger.info("Adding resource files")
resources = ["css", "js", "img"]
for resource in resources:
(target / resource).mkdir()
filepath = target / "index.mkd"
with open(filepath, "w") as fp:
fp.write(new_post.format(title=title))
editor = os.environ.get("EDITOR")
if not editor:
_logger.info("No EDITOR found, exiting")
return
call([editor, filepath])