1
0
mirror of https://github.com/krislamo/DJ-BaseSite synced 2024-09-19 20:20:35 +00:00
DJ-BaseSite/SetupProject.py

132 lines
2.8 KiB
Python
Raw Normal View History

2012-10-13 14:35:48 +00:00
'''
Copyright (c) 2012, Kris Lamoureux
All rights reserved.
Released under the New BSD.
'''
from os import mkdir
from shutil import copy
import os.path
import traceback
PROJECT_HOME = "myproject"
PROJECT = ""
HERE = os.path.dirname(os.path.realpath(__file__))
HERE = HERE.replace('\\','/')
REPLACEM = []
def add_REPLACE(a):
global REPLACEM
REPLACEM.append(a)
def main():
global PROJECT, PROJECT_HOME, HERE, REPLACEM
PROJECT = raw_input("New Project Name: ")
add_REPLACE(['<%myproject%>',PROJECT])
mkdir(PROJECT)
mkdir(PROJECT+'/'+PROJECT)
files = []
move = []
'''
The config system is a little picky, it works
but it can be written better, and I plan to
update it.
'''
f_hand = open("./config.txt")
config_list = f_hand.readlines()
for config_setting in config_list:
# take off '\n' at end of string
config_setting = config_setting[:-1]
# ignore comments.
if config_setting[0:2] == "//":
pass
# ignore empty lines
elif config_setting == "":
pass
# ignore newlines
elif config_setting == "\n":
pass
# add file variable. (format: <%myproject%>)
elif config_setting[0:1] == "v":
config_setting = config_setting.split(' ')
config_setting[1] = "<%"+config_setting[1]+"%>"
try:
add_REPLACE([config_setting[1],config_setting[2]])
except IndexError:
print "You have an empty variable in the configuration."
except:
traceback.print_exc()
raw_input()
quit()
# Create folder for an app.
elif config_setting[0:3] == "dir":
config_setting = config_setting.split(' ')
if not len(config_setting) == 3:
mkdir(HERE+'/'+PROJECT+'/'+PROJECT+'/'+config_setting[1])
else:
mkdir(HERE+'/'+PROJECT+'/'+config_setting[1])
else:
old_path = config_setting.split(' ')[0]
old_path= old_path.replace("%here%",HERE)
new_path = old_path.replace("myproject", PROJECT)
if config_setting.split(' ')[1] == '1':
files.append([old_path, new_path])
elif config_setting.split(' ')[1] == '2':
move.append([old_path, new_path])
else:
print "Something went wrong here.."
raw_input()
exit()
'''
END OF CONFIG SYSTEM.
'''
# Cycle through files, dynamic then static.
for dyn_file in files:
# Open file that has vars to replace (format: <%varname%>)
old_fileh = open(dyn_file[0])
old_file = old_fileh.read()
# Replace vars with data
for var in REPLACEM:
old_file = old_file.replace(var[0],var[1])
# Write new file
f = open(dyn_file[1], "w+")
f.write(old_file)
f.close()
# Static cycle.
stat_file_dir = ""
for sta_file in move:
if sta_file[1].find('.'):
stat_file_dir = os.path.dirname(sta_file[1])
copy(sta_file[0], stat_file_dir)
else:
copy(sta_file[0], sta_file[1])
print "Project: "+PROJECT+" is ready for development.\n"
try:
main()
except:
traceback.print_exc()
print "Press any key to quit."
raw_input()
quit()