From 5b1792ae98d87c36ec38c3aa2a74751c8c84610b Mon Sep 17 00:00:00 2001 From: Pratik Vyas Date: Fri, 10 Jun 2011 16:35:21 +0530 Subject: [PATCH] Added js Dependency Builder --- cgi-bin/webnotes/utils/jsdependency.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 cgi-bin/webnotes/utils/jsdependency.py 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