dever.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. dever-manage tools
  5. name:dever.py
  6. author:rabin
  7. """
  8. from core import *
  9. import json
  10. class Dever(object):
  11. git = 'http://git.dever.cc:3000/'
  12. lib = Core.path + 'container/share/lib/php/'
  13. dev = Core.path + 'container/web/'
  14. framework = 'dever/framework.git'
  15. demo = 'dever/demo.git'
  16. package = 'dever-package/'
  17. product = 'dever-product/'
  18. @classmethod
  19. def init(self):
  20. method = Core.getMethod(Dever_Action, Args.action)
  21. method()
  22. @staticmethod
  23. def rely(self, path):
  24. package = path + '/package.json'
  25. if File.exists(package):
  26. data = File.read(package, '')
  27. data = json.loads(data)
  28. if 'rely' in data:
  29. rely = data['rely'].split(',')
  30. for v in rely:
  31. Args.name = v
  32. self.package()
  33. class Dever_Action(object):
  34. @staticmethod
  35. def init():
  36. Git.update(Dever.git + Dever.framework, Dever.lib + 'dever')
  37. @classmethod
  38. def package(self):
  39. lib = Dever.lib + 'dever_package/'
  40. path = lib + Args.name
  41. Git.update(Dever.git + Dever.package + Args.name, path)
  42. Dever.rely(self, path)
  43. boot = lib + 'boot.php'
  44. if not File.exists(boot):
  45. File.write(boot, "<?php \r\n if (!defined('DEVER_PROJECT')) {\r\ndefine('DEVER_PROJECT', 'default');\r\ndefine('DEVER_PROJECT_PATH', dirname(__FILE__) . DIRECTORY_SEPARATOR);\r\n}\r\ninclude(dirname(__FILE__) . DIRECTORY_SEPARATOR . '../dever/boot.php');")
  46. @classmethod
  47. def product(self):
  48. path = Dever.dev + Args.name
  49. Git.update(Dever.git + Dever.product + Args.name, path)
  50. Dever.rely(self, path)
  51. @staticmethod
  52. def demo():
  53. Git.update(Dever.git + Dever.demo, Dever.dev + 'demo')
  54. @staticmethod
  55. def create():
  56. path = Dever.dev + Args.name
  57. if not Args.name:
  58. print 'name is error'
  59. return
  60. if File.exists(path):
  61. print path + ' is exists'
  62. else:
  63. print path