Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

wnf.py 2.4 KiB

14 år sedan
14 år sedan
14 år sedan
14 år sedan
14 år sedan
14 år sedan
14 år sedan
14 år sedan
14 år sedan
14 år sedan
14 år sedan
14 år sedan
14 år sedan
14 år sedan
14 år sedan
14 år sedan
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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 [local|master] : merge from source (master or local)"
  12. print "python lib/wnf.py log : list last 10 commits"
  13. def run():
  14. sys.path.append('lib')
  15. sys.path.append('lib/py')
  16. if len(sys.argv)<2:
  17. print_help()
  18. return
  19. cmd = sys.argv[1]
  20. if cmd=='build':
  21. from py import build
  22. build.run()
  23. vc = version.VersionControl()
  24. print 'version %s' % vc.repo.get_value('last_version_number')
  25. elif cmd=='merge':
  26. vc = version.VersionControl()
  27. vc.setup_master()
  28. if sys.argv[2]=='local':
  29. vc.merge(vc.repo, vc.master)
  30. elif sys.argv[2]=='master':
  31. vc.merge(vc.master, vc.repo)
  32. else:
  33. print "usage: wnf merge local|master"
  34. print "help: parameter (local or master) is the source"
  35. vc.close()
  36. elif cmd=='setup':
  37. if not os.path.exists('versions-local.db'):
  38. if os.path.exists('versions-master.db'):
  39. import shutil
  40. shutil.copyfile('versions-master.db', 'versions-local.db')
  41. print "created versions-local.db from versions-master.db"
  42. else:
  43. vc = version.VersionControl()
  44. vc.repo.setup()
  45. vc.close()
  46. print "created fresh versions-local.db"
  47. else:
  48. if len(sys.argv)==3 and sys.argv[2]=='master':
  49. import shutil
  50. shutil.copyfile('versions-local.db', 'versions-master.db')
  51. print "created versions-master.db from versions-local.db"
  52. else:
  53. print "versions-local.db already exists. Nothing to do."
  54. elif cmd=='clear_startup':
  55. # experimental
  56. from webnotes import startup
  57. startup.clear_info('all')
  58. vc = version.VersionControl()
  59. print 'version %s' % vc.repo.get_value('last_version_number')
  60. elif cmd=='log':
  61. vc = version.VersionControl()
  62. for l in vc.repo.sql("select * from log order by rowid desc limit 10 ", as_dict =1):
  63. print 'file:'+ l['fname'] + ' | version: ' + l['version']
  64. print 'version %s' % vc.repo.get_value('last_version_number')
  65. vc.close()
  66. elif cmd=='files':
  67. vc = version.VersionControl()
  68. for f in vc.repo.sql("select fname from files where fname like ?", ((sys.argv[2] + '%'),)):
  69. print f[0]
  70. vc.close()
  71. if __name__=='__main__':
  72. run()