您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

14 年前
14 年前
14 年前
14 年前
14 年前
14 年前
14 年前
14 年前
14 年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #!/usr/bin/env python
  2. import os, sys
  3. from py.build import version
  4. version.verbose = True
  5. def print_help():
  6. print "wnframework version control utility"
  7. print
  8. print "Usage:"
  9. print "python lib/wnf.py build : scan all folders and commit versions with latest changes"
  10. print "python lib/wnf.py setup : setup the local system (from master or fresh)"
  11. print "python lib/wnf.py merge : merge from local into master"
  12. print "python lib/wnf.py log : list last 10 commits"
  13. print "python lib/wnf.py pull : pull from git"
  14. def setup():
  15. import os, sys
  16. if not os.path.exists('versions-local.db'):
  17. if os.path.exists('versions-master.db'):
  18. import shutil
  19. shutil.copyfile('versions-master.db', 'versions-local.db')
  20. print "created versions-local.db from versions-master.db"
  21. else:
  22. vc = version.VersionControl()
  23. vc.repo.setup()
  24. vc.close()
  25. print "created fresh versions-local.db"
  26. else:
  27. if len(sys.argv)==3 and sys.argv[2]=='master':
  28. import shutil
  29. shutil.copyfile('versions-local.db', 'versions-master.db')
  30. print "created versions-master.db from versions-local.db"
  31. else:
  32. print "versions-local.db already exists. Nothing to do."
  33. def run():
  34. sys.path.append('lib')
  35. sys.path.append('lib/py')
  36. if len(sys.argv)<2:
  37. print_help()
  38. return
  39. cmd = sys.argv[1]
  40. if cmd=='build':
  41. from py import build
  42. build.run()
  43. vc = version.VersionControl()
  44. print 'version %s' % vc.repo.get_value('last_version_number')
  45. elif cmd=='merge':
  46. vc = version.VersionControl()
  47. vc.setup_master()
  48. vc.merge(vc.repo, vc.master)
  49. vc.close()
  50. elif cmd=='merge-local':
  51. vc = version.VersionControl()
  52. vc.setup_master()
  53. vc.merge(vc.master, vc.repo)
  54. vc.close()
  55. elif cmd=='setup':
  56. setup()
  57. elif cmd=='clear_startup':
  58. # experimental
  59. from webnotes import startup
  60. startup.clear_info('all')
  61. vc = version.VersionControl()
  62. print 'version %s' % vc.repo.get_value('last_version_number')
  63. elif cmd=='log':
  64. vc = version.VersionControl()
  65. for l in vc.repo.sql("select * from log order by rowid desc limit 10 ", as_dict =1):
  66. print 'file:'+ l['fname'] + ' | version: ' + l['version']
  67. print 'version %s' % vc.repo.get_value('last_version_number')
  68. vc.close()
  69. elif cmd=='files':
  70. vc = version.VersionControl()
  71. for f in vc.repo.sql("select fname from files where fname like ?", ((sys.argv[2] + '%'),)):
  72. print f[0]
  73. vc.close()
  74. # pull from remote and merge with local
  75. elif cmd=='gitpull':
  76. branch = 'master'
  77. if len(sys.argv)>2:
  78. branch = sys.argv[2]
  79. print "pulling erpnext"
  80. os.system('git pull origin %s' % branch)
  81. vc = version.VersionControl()
  82. vc.setup_master()
  83. vc.merge(vc.master, vc.repo)
  84. vc.close()
  85. print "pulling framework"
  86. os.chdir('lib')
  87. os.system('git pull origin %s' % branch)
  88. if __name__=='__main__':
  89. run()