Source code for nefelibata.cli.init
# -*- coding: utf-8 -*-
import logging
import os
import shutil
from pathlib import Path
from pkg_resources import resource_filename
from pkg_resources import resource_listdir
__author__ = "Beto Dealmeida"
__copyright__ = "Beto Dealmeida"
__license__ = "mit"
_logger = logging.getLogger(__name__)
[docs]def run(root: Path) -> None:
"""Create initial structure for weblog."""
resources = resource_listdir("nefelibata", "skeleton")
for resource in resources:
origin = Path(
resource_filename("nefelibata", os.path.join("skeleton", resource)),
)
target = root / resource
# good guy Greg does not overwrite existing files
if target.exists():
resource_type = "Directory" if origin.is_dir() else "File"
raise IOError(f"{resource_type} {target} already exists!")
if origin.is_dir():
shutil.copytree(origin, target)
else:
shutil.copy(origin, target)
_logger.info("Weblog created!")