diff --git a/erpnext/website/Role/Website Manager/Website Manager.txt b/erpnext/website/Role/Website Manager/Website Manager.txt new file mode 100644 index 0000000000..ad1ad9aef3 --- /dev/null +++ b/erpnext/website/Role/Website Manager/Website Manager.txt @@ -0,0 +1,26 @@ +# Role, Website Manager +[ + + # These values are common in all dictionaries + { + 'creation': '2012-01-24 10:18:47', + 'docstatus': 0, + 'modified': '2012-02-06 15:22:27', + 'modified_by': u'Administrator', + 'owner': u'Administrator' + }, + + # These values are common for all Role + { + 'doctype': 'Role', + 'module': u'Website', + 'name': '__common__', + 'role_name': u'Website Manager' + }, + + # Role, Website Manager + { + 'doctype': 'Role', + 'name': u'Website Manager' + } +] \ No newline at end of file diff --git a/wnf.py b/wnf.py new file mode 100755 index 0000000000..bc11387929 --- /dev/null +++ b/wnf.py @@ -0,0 +1,134 @@ +#!/usr/bin/env python + +import os, sys + +def replace_code(start, txt1, txt2, extn): + """replace all txt1 by txt2 in files with extension (extn)""" + import os, re + for wt in os.walk(start, followlinks=1): + for fn in wt[2]: + if fn.split('.')[-1]==extn: + fpath = os.path.join(wt[0], fn) + with open(fpath, 'r') as f: + content = f.read() + + if re.search(txt1, content): + a = raw_input('Change in %s [y/n]?' % fpath) + if a=='y': + with open(fpath, 'w') as f: + f.write(re.sub(txt1, txt2, content)) + + print 'updated in %s' % fpath + +def setup_options(): + from optparse import OptionParser + parser = OptionParser() + parser.add_option("-b", "--build", default=False, action="store_true", + help="minify + concat js files") + parser.add_option("-c", "--clear", default=False, action="store_true", + help="increment version") + parser.add_option("--replace", nargs=3, default=False, + metavar = "search replace_by extension", + help="file search-replace") + parser.add_option("--status", default=False, action="store_true", + help="git status") + parser.add_option("--pull", nargs=2, default=False, + metavar = "remote branch", + help="git pull (both repos)") + parser.add_option("--push", nargs=3, default=False, + metavar = "remote branch comment", + help="git commit + push (both repos) [remote] [branch] [comment]") + parser.add_option("-l", "--latest", + action="store_true", dest="run_latest", default=False, + help="Apply the latest patches") + parser.add_option("-p", "--patch", nargs=1, dest="patch_list", metavar='patch_module', + action="append", + help="Apply patch") + parser.add_option("-f", "--force", + action="store_true", dest="force", default=False, + help="Force Apply all patches specified using option -p or --patch") + parser.add_option("-d", "--db", + dest="db_name", + help="Apply the patches on given db") + parser.add_option('-r', '--reload_doc', nargs=3, metavar = "module doctype docname", + help="reload doc") + + return parser.parse_args() + +def run(): + sys.path.append('.') + sys.path.append('lib/py') + import webnotes + import webnotes.defs + sys.path.append(webnotes.defs.modules_path) + + (options, args) = setup_options() + + + from webnotes.db import Database + import webnotes.modules.patch_handler + + # build + if options.build: + import build.project + build.project.build() + + elif options.clear: + from build.project import increment_version + print "Version:" + str(increment_version()) + + # code replace + elif options.replace: + replace_code('.', options.replace[0], options.replace[1], options.replace[2]) + + # git + elif options.status: + os.system('git status') + os.chdir('lib') + os.system('git status') + + elif options.pull: + os.system('git pull %s %s' % (options.pull[0], options.pull[1])) + os.chdir('lib') + os.system('git pull %s %s' % (options.pull[0], options.pull[1])) + + elif options.push: + os.system('git commit -a -m "%s"' % options.push[2]) + os.system('git push %s %s' % (options.push[0], options.push[1])) + os.chdir('lib') + os.system('git commit -a -m "%s"' % options.push[2]) + os.system('git push %s %s' % (options.push[0], options.push[1])) + + + + # patch + elif options.patch_list: + # clear log + webnotes.modules.patch_handler.log_list = [] + + # connect to db + if options.db_name is not None: + webnotes.connect(options.db_name) + else: + webnotes.connect() + + # run individual patches + for patch in options.patch_list: + webnotes.modules.patch_handler.run_single(\ + patchmodule = patch, force = options.force) + + print '\n'.join(webnotes.modules.patch_handler.log_list) + + # reload + elif options.reload_doc: + webnotes.modules.patch_handler.reload_doc(\ + {"module":args[0], "dt":args[1], "dn":args[2]}) + print '\n'.join(webnotes.modules.patch_handler.log_list) + + # run all pending + elif options.run_latest: + webnotes.modules.patch_handler.run_all() + print '\n'.join(webnotes.modules.patch_handler.log_list) + +if __name__=='__main__': + run()