dever 7 jaren geleden
bovenliggende
commit
0d330f6c14
3 gewijzigde bestanden met toevoegingen van 54 en 11 verwijderingen
  1. 9 1
      src/core.py
  2. 6 2
      src/dever.py
  3. 39 8
      src/tool/dever.py

+ 9 - 1
src/core.py

@@ -304,10 +304,18 @@ class File(object):
 		handle.close()
 		return content
 
+	@staticmethod
+	def getFiles(path):
+		return os.listdir(path)
+
 	@staticmethod
 	def path():
 		return os.path.split(os.path.realpath(__file__))[0] + '/'
 
+	@staticmethod
+	def cur():
+		return os.getcwd()
+
 	@staticmethod
 	def exists(name):
 		return os.path.exists(name)
@@ -335,7 +343,7 @@ class File(object):
 class Git(object):
 	@staticmethod
 	def update(git, path):
-		if File.exists(path) == False:
+		if git and File.exists(path) == False:
 			Core.popen('git clone ' + git + ' ' + path, True)
 			print 'init:' + path + ' finished!'
 		else:

+ 6 - 2
src/dever.py

@@ -4,8 +4,12 @@
 	dever-manage tools
 	name:install.py
 	author:rabin
-	dever init
-	dever  
+	dever init 初始化,更新核心类库
+	dever package manage 更新manage官方组件
+	dever put http://git.5dev.cn:3000/php_package/ 定义自定义组件的仓库组路径
+	dever get collect 获取自定义组件
+	dever pull 在当前目录下更新所有依赖组件
+	dever all 更新当前所有组件
 
 """
 from main import *

+ 39 - 8
src/tool/dever.py

@@ -33,6 +33,12 @@ class Dever(object):
 					Args.name = v
 					self.package()
 
+	@staticmethod
+	def boot(lib):
+		boot = lib + 'boot.php'
+		if not File.exists(boot):
+			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');")
+
 class Dever_Action(object):
 	@staticmethod
 	def init():
@@ -40,18 +46,43 @@ class Dever_Action(object):
 
 	@classmethod
 	def package(self):
-		lib = Dever.lib + 'dever_package/'
-		path = lib + Args.name
+		self.update(Dever.git + Dever.package + Args.name)
+
+	@classmethod
+	def put(self):
+		Env.dever(Args.name)
+
+	@classmethod
+	def get(self):
 		git = Args.param
 		if not git:
 			git = Env.dever()
-		if not git:
-			git = Dever.git
-		Git.update(git + Dever.package + Args.name, path)
+		if not git or 'http' not in git:
+			git = Dever.git + Dever.package
+		self.update(git + Args.name)
+
+	@classmethod
+	def update(self, store):
+		lib = Dever.lib + 'dever_package/'
+		path = lib + Args.name
+		Git.update(store, path)
+		Dever.rely(self, path)
+		Dever.boot(lib)
+
+	@classmethod
+	def all(self):
+		path = Dever.lib + 'dever_package/'
+		files = File.getFiles(path)
+		if files:
+			for i in files:
+				if '.' not in i:
+					Args.name = i
+					self.update(False)
+
+	@classmethod
+	def pull(self):
+		path = File.cur()
 		Dever.rely(self, path)
-		boot = lib + 'boot.php'
-		if not File.exists(boot):
-			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');")
 
 	@classmethod
 	def product(self):