7ee3f73d by Marcos Cano

recursive functionality added

1 parent ea43f423
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
......