diff --git a/cgi-bin/webnotes/utils/jsdependency.py b/cgi-bin/webnotes/utils/jsdependency.py new file mode 100644 index 0000000000..6bade8bd4b --- /dev/null +++ b/cgi-bin/webnotes/utils/jsdependency.py @@ -0,0 +1,23 @@ +class jsDependencyBuilder: + def read_code(self,js_path): + try: + f = open(js_path) + try: + code = f.read() + finally: + f.close + except Exception, e: + raise e + return code + def read_imports(self,code): + import re + p = re.compile('\$import\(\' (?P [^)]*)\' \)', re.VERBOSE) + return p.findall(code) + def build_dependency(self,js_path,depends= set()): + code = self.read_code(js_path) + curdepend = self.read_imports(code) + for i in curdepend: + if i not in depends: + depends.add(i) + depends = depends.union( self.build_dependency(i,depends)) + return depends