recursive functionality added
Showing
1 changed file
with
32 additions
and
4 deletions
1 | #!/usr/bin/python | 1 | #!/usr/bin/python |
2 | import string, re, sys | 2 | import string, re, sys |
3 | import getopt,os.path, json | 3 | import getopt,os.path, json |
4 | from pprint import pprint | ||
5 | |||
4 | 6 | ||
5 | 7 | ||
6 | debug = False | 8 | debug = False |
7 | ifile = '' | 9 | ifile = '' |
10 | folder = '' | ||
8 | ofile = ifile | 11 | ofile = ifile |
9 | printit = False | 12 | printit = False |
10 | vars=os.environ | 13 | vars=os.environ |
14 | recursive = False | ||
11 | 15 | ||
12 | 16 | ||
13 | class MyTemplate(string.Template): | 17 | class MyTemplate(string.Template): |
... | @@ -69,17 +73,20 @@ def engine(ifile,ofile,vars): | ... | @@ -69,17 +73,20 @@ def engine(ifile,ofile,vars): |
69 | 73 | ||
70 | def main(argv): | 74 | def main(argv): |
71 | try: | 75 | try: |
72 | options, remainder = getopt.getopt(sys.argv[1:], 'o:f:i:v:dph', ['ofile=','o=', | 76 | options, remainder = getopt.getopt(sys.argv[1:], 'o:f:i:v:r:dph', ['ofile=','o=', |
73 | 'ifile=','i=', | 77 | 'ifile=','i=', |
74 | 'vars=','v=', | 78 | 'vars=','v=', |
75 | 'print','p', | 79 | 'print','p', |
76 | 'help','h' | 80 | 'help','h', |
81 | 'r=' | ||
77 | ]) | 82 | ]) |
78 | except getopt.GetoptError: | 83 | except getopt.GetoptError: |
79 | usage() | 84 | usage() |
80 | sys.exit(2) | 85 | sys.exit(2) |
81 | 86 | ||
82 | global debug, vars, ifile, ofile,printit | 87 | global debug, vars, ifile, ofile,printit, recursive |
88 | print options | ||
89 | |||
83 | 90 | ||
84 | for opt, arg in options: | 91 | for opt, arg in options: |
85 | if opt in ('-v','--vars','--v'): | 92 | if opt in ('-v','--vars','--v'): |
... | @@ -91,6 +98,14 @@ def main(argv): | ... | @@ -91,6 +98,14 @@ def main(argv): |
91 | print "using environment" | 98 | print "using environment" |
92 | vars=os.environ | 99 | vars=os.environ |
93 | 100 | ||
101 | elif opt in ('-r','--r'): | ||
102 | if os.path.isdir(arg): | ||
103 | recursive= True | ||
104 | folder = arg | ||
105 | else: | ||
106 | print "folder provided [%s] does not exist" %arg | ||
107 | usage() | ||
108 | |||
94 | elif opt in ('-f','--ifile','--i','-i'): | 109 | elif opt in ('-f','--ifile','--i','-i'): |
95 | if os.path.isfile(arg): | 110 | if os.path.isfile(arg): |
96 | ifile=arg | 111 | ifile=arg |
... | @@ -110,7 +125,7 @@ def main(argv): | ... | @@ -110,7 +125,7 @@ def main(argv): |
110 | 125 | ||
111 | if debug: | 126 | if debug: |
112 | print 'OPTIONS :', options | 127 | print 'OPTIONS :', options |
113 | print 'VARS :', pprint(vars) | 128 | print 'VARS :', pprint(str(vars)) |
114 | print 'DEBUG :', debug | 129 | print 'DEBUG :', debug |
115 | print 'OUTPUT :', ofile | 130 | print 'OUTPUT :', ofile |
116 | print 'INPUT :', ifile | 131 | print 'INPUT :', ifile |
... | @@ -118,8 +133,21 @@ def main(argv): | ... | @@ -118,8 +133,21 @@ def main(argv): |
118 | print 'REMAINING :', remainder | 133 | print 'REMAINING :', remainder |
119 | 134 | ||
120 | 135 | ||
136 | if recursive : | ||
137 | print folder | ||
138 | for path, dirs, files in os.walk(folder): | ||
139 | for filename in files: | ||
140 | fullpath = os.path.join(path, filename) | ||
141 | if os.path.isfile(fullpath): | ||
142 | engine(fullpath, fullpath, vars) | ||
143 | else: | ||
144 | print "file %s does not exists"%fullpath | ||
121 | 145 | ||
146 | elif ifile != '': | ||
122 | engine(ifile, ofile, vars ) | 147 | engine(ifile, ofile, vars ) |
148 | else: | ||
149 | print "nothing provided" | ||
150 | sys.exit(1) | ||
123 | 151 | ||
124 | 152 | ||
125 | 153 | ... | ... |
-
Please register or sign in to post a comment