Source code for raider.parsers.new

import argparse
import os

from raider import Raider
from raider.search import Search
from raider.utils import colored_text, get_project_dir


[docs]def add_new_parser(parser) -> None: new_parser = parser.add_parser( "new", help="Create new projects and hyfiles" ) new_parser.add_argument( "project", help="Project name (will be created if doesn't exist)" ) new_parser.add_argument( "hyfile", nargs="?", help="Add new hyfile to the project" )
[docs]def run_new_command(args): raider = Raider() logger = raider.logger project_dir = get_project_dir(args.project) if os.path.isdir(project_dir): raider.logger.info( 'Project "%s" already exists, not creating new directory.', args.project, ) else: os.makedirs(project_dir) raider.logger.info( 'Created new project "%s" located at %s.', args.project, project_dir, ) if args.hyfile: filepath = os.path.join(project_dir, args.hyfile) else: filename = input( colored_text( "New file name (recommended in XX_name.hy format where XX=digits): ", "BLUE-BLACK-B", ) ) filepath = os.path.join(project_dir, filename) if os.path.isfile(filepath): raider.logger.warning("File %s already exists.", filepath) answer = input( colored_text( "Are you sure you want to overwrite it? (Y/N) ", "RED-BLACK-B" ) ) if answer[0].upper() == "Y": raider.logger.info("Overwriting file %s.", filepath) open(filepath, "w").close() else: raider.logger.info("Creating file %s.", filepath) open(filepath, "w").close() editor = os.getenv("EDITOR") or "vim" os.system("%s %s" % (editor, filepath))