Skip to content

Commit

Permalink
refactor two
Browse files Browse the repository at this point in the history
  • Loading branch information
mjhea0 committed Aug 1, 2016
1 parent d1d325f commit f06a596
Showing 1 changed file with 28 additions and 22 deletions.
50 changes: 28 additions & 22 deletions flask_skeleton.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,18 @@
import sys
import os
import argparse
import shutil
import jinja2
import codecs
import subprocess
import platform
import shutil

if sys.version_info < (3, 0):
from shutilwhich import which
else:
from shutil import which

import platform


# Globals #

Expand All @@ -26,48 +27,49 @@
template_env = jinja2.Environment(loader=template_loader)


def main(argv):

# Arguments #

def get_arguments(argv):
parser = argparse.ArgumentParser(description='Scaffold a Flask Skeleton.')
parser.add_argument('appname', help='The application name')
parser.add_argument('-s', '--skeleton', help='The skeleton folder to use.')
parser.add_argument('-b', '--bower', help='Install dependencies via bower')
parser.add_argument('-v', '--virtualenv', action='store_true')
parser.add_argument('-g', '--git', action='store_true')
args = parser.parse_args()
return args

# Variables #

appname = args.appname
fullpath = os.path.join(cwd, appname)
skeleton_dir = args.skeleton

# Summary #

def generate_brief(template_var):
template = template_env.get_template('brief.jinja2')
return template.render(template_var)

def generate_brief(args):
template_var = {
'pyversion': platform.python_version(),
'appname': appname,
'appname': args.appname,
'bower': args.bower,
'virtualenv': args.virtualenv,
'skeleton': args.skeleton,
'path': fullpath,
'path': os.path.join(cwd, args.appname),
'git': args.git
}
template = template_env.get_template('brief.jinja2')
return template.render(template_var)


def main(args):

print("\nScaffolding...")

print(generate_brief(template_var))
# Variables #

appname = args.appname
fullpath = os.path.join(cwd, appname)
skeleton_dir = args.skeleton

# Tasks #

# Copy files and folders
print("Copying files and folders...")
shutil.copytree(os.path.join(script_dir, skeleton_dir), fullpath)

# Create config.py
print("Creating the config...")
secret_key = codecs.encode(os.urandom(32), 'hex').decode('utf-8')
template = template_env.get_template('config.jinja2')
template_var = {
Expand All @@ -78,6 +80,7 @@ def generate_brief(template_var):

# Add bower dependencies
if args.bower:
print("Adding bower dependencies...")
bower = args.bower.split(',')
bower_exe = which('bower')
if bower_exe:
Expand All @@ -88,7 +91,6 @@ def generate_brief(template_var):
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
).communicate()
# print(output)
if error:
print("An error occurred with Bower")
print(error)
Expand All @@ -98,6 +100,7 @@ def generate_brief(template_var):
# Add a virtualenv
virtualenv = args.virtualenv
if virtualenv:
print("Adding a virtualenv...")
virtualenv_exe = which('pyvenv')
if virtualenv_exe:
output, error = subprocess.Popen(
Expand Down Expand Up @@ -130,6 +133,7 @@ def generate_brief(template_var):

# Git init
if args.git:
print("Initializing Git...")
output, error = subprocess.Popen(
['git', 'init', fullpath],
stdout=subprocess.PIPE,
Expand All @@ -147,4 +151,6 @@ def generate_brief(template_var):


if __name__ == '__main__':
main(sys.argv)
arguments = get_arguments(sys.argv)
print(generate_brief(arguments))
main(arguments)

0 comments on commit f06a596

Please sign in to comment.