commit aeb34602467c1a826e2786d151d933d0c484d248 Author: koeart Date: Wed Jul 3 03:40:24 2013 +0200 initial commit after a whole nights work diff --git a/README.md b/README.md new file mode 100644 index 0000000..145e710 --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +Pytemplate + +Little Pythonprogram which can handle a template folder according to your needs. + +Goal: Setup your latex/programming templates including a git init by a shell-oneliner. + +required: +* ConfigParser +* OptionParser +* git diff --git a/py-template.py b/py-template.py new file mode 100755 index 0000000..6583564 --- /dev/null +++ b/py-template.py @@ -0,0 +1,180 @@ +# -*- coding: utf-8 -*- +""" +Created on Mon Jul 1 20:47:53 2013 + +@author: koeart + +conffile = filename +config = SafeConfigParser() object +""" + +__author__ = "Paul Schwanse " +__version__ = "0.0.1" +__date__ = "Tue 02 Jul 2013 23:23:42 CET" +__copyright__ = "Copyright (c) 2013 Paul Schwanse" +__license__ = "Python" + + + +import csv +import os +import shutil +import sys +from optparse import OptionParser +from ConfigParser import SafeConfigParser + + + + + +# hier muesste man eigtl. die headline nur den "name" key rauspopeln + +def make_default_config(conffile): + """ + Creates the basic but default configuration file. + + To add new things to the config, setup dict()s. the key "sectionname" is essential, because the actual sectionname of the configurationfile is made up from this. + + Standard Config: + ----- + #all path except templatedir are considered to be relative to templatedir + [DEFAULT] ; in this section all defaults are set + templatedir = ~/templates + prepre=pre- ;uses expansion + git=False ;setup git -> use git section + + [GIT] ; to be implemented + gituser=koeart + gitdir= + giturl= + + #sets all dirs. + #everything is optional. Please see Documentation for supported things! + [latex-beamer] + directory=latex-beamer + preambeldir=latex-preambel + latexengine=lualatex + preambel=%(prepre)s%(latexengine)s + + """ + + DEFAULT = dict(templatedir="~/templates", + prepre="pre-", + git=False) + git = dict(sectionname="git", + gitdir="~./git", + gituser="koeart", + gitemail="", + giturl="git@141.30.211.92") + latexbeamer = dict(sectionname="latexbeamer", + directory="latex-beamer", + preambledir="latex-preambel", + latexengine="lulatex", + preambel="%(prepre)s%(latexengine)s") + + sections=(git, latexbeamer) + config = SafeConfigParser(DEFAULT) + + for section in sections: + config.add_section(section['sectionname']) + for key, value in section.items(): + config.set(section['sectionname'], key, value) + + with open(conffile, 'w') as conffile: + config.write(conffile) + + show_config(config) + + +def show_config(config, *secs): + line ='' + if secs: + sections = secs + else: + sections = config.sections() + for section in sections: + line += "\n["+ section +"]\n" + for option, value in config.items(section): + line += option + " = " + value + "\n" + print line + print "Attention! Default values are written here as well! Don't wonder!" + +def init_parser(): + """Parse Command Line Options and Arguments""" + parser = OptionParser() + + parser.add_option( + "--make-default-config", + dest="makedefaultconf", + help=u"Creates a default Config in the current working directory. Default: config.cfg", + default=False, + action="store_true") + + parser.add_option( + "--conffile", + "-c", + dest="conffile", + help=u"$metavar from which config data should be read. Default: $default", + default="config.cfg", + metavar="FILE") + + parser.add_option( + "--show-config", + "-s", + dest="showconfig", + help=u"shows current config. If an Argument if an argument, thus section, is supplied, list only section", + default=False, + action="store_true") + + parser.add_option( + "--verbose", + "-v", + dest="verbose", + help=u"blabber an", + default=False, + action="store_true", + ) + + options, args = parser.parse_args() + return options, args + +def main(): + + #read command line options and arguemnts + options,args = init_parser() + + #check if (the specified) config exists, otherwise: create one + if options.makedefaultconf: + make_default_config(options.conffile) + print "created " + options.conffile + sys.exit() + + #try to open conffile + try: + config = SafeConfigParser() + config.readfp(open(options.conffile),'r') + if options.showconfig: + show_config(config) + except: + print "problems occured with conffile reading" + + + #now look at the arguemnt what to do. + # make sure there is only one + try: + if len(args)>1: + print "Too many arguments! I cannot do that! Please provide one single templatething you want to have!" + elif len(args) == 0: + print "Not enough arguments :(" + elif config.has_section(args[0]): + show_config(config, args[0]) + except: + print "something went wrong" + pass + + +if __name__ == "__main__": + main() + + +