dever 7 years ago
parent
commit
8990517ae2
3 changed files with 41 additions and 11 deletions
  1. 8 3
      src/core.py
  2. 3 2
      src/dever.py
  3. 30 6
      src/tool/dever.py

+ 8 - 3
src/core.py

@@ -342,6 +342,13 @@ class File(object):
 			os.makedirs(path)
 		return path
 
+	@staticmethod
+	def tmp():
+		tmp = '/tmp/'
+		if not File.exists(tmp):
+			File.mkdir(tmp)
+		return tmp
+
 class Git(object):
 	@staticmethod
 	def update(git, path):
@@ -351,9 +358,7 @@ class Git(object):
 		else:
 			file = path + '/' + '.git/'
 			if not File.exists(file):
-				tmp = '/tmp/'
-				File.mkdir(tmp)
-				tmp = tmp + path
+				tmp = File.tmp() + path
 				Core.popen('git clone ' + git + ' ' + tmp + ' && cp -R ' + tmp + '/.git/ ' + file + ' && rm -rf ' + tmp)
 
 			Core.popen('cd ' + path + ' && git pull')

+ 3 - 2
src/dever.py

@@ -6,9 +6,10 @@
 	author:rabin
 	dever init 初始化,更新核心类库
 	dever package manage 更新manage官方组件
-	dever put http://git.5dev.cn:3000/php_package/ 定义自定义组件的仓库组路径
-	dever get collect 获取自定义组件
+	dever store http://git.5dev.cn:3000/php_package/ 定义自定义组件的仓库组路径
+	dever get collect [git] 获取当前store/[git]下的自定义组件
 	dever pull [git] 在当前目录/[git]下更新所有依赖组件
+	dever convert name [git] 将当前目录下的name目录转换为组件,推送到当前store/[git]下
 	dever create [git] 在当前目录/[git]下创建一个项目
 	dever dev 进入开发模式
 	dever push 将当前目录下的文件推送到线上 如果是开发模式,将本地分支合并到master上

+ 30 - 6
src/tool/dever.py

@@ -59,6 +59,15 @@ class Dever(object):
 				Dever_Create.git(git, path)
 		return path
 
+	@staticmethod
+	def custom():
+		git = Args.param
+		if not git:
+			git = Env.dever()
+		if not git or 'http' not in git:
+			git = Dever.git + Dever.package
+		return git
+
 class Dever_Create(object):
 
 	@staticmethod
@@ -163,16 +172,12 @@ class Dever_Action(object):
 		return self.update(Dever.git + Dever.package + name, name)
 
 	@classmethod
-	def put(self):
+	def store(self):
 		Env.dever(Args.name)
 
 	@classmethod
 	def get(self):
-		git = Args.param
-		if not git:
-			git = Env.dever()
-		if not git or 'http' not in git:
-			git = Dever.git + Dever.package
+		git = Dever.custom()
 		return self.update(git + Args.name, Args.name)
 
 	@classmethod
@@ -210,6 +215,25 @@ class Dever_Action(object):
 		path = File.cur()
 		Git.push(path + '/', Args.name, Args.param)
 
+	@classmethod
+	def convert(self):
+		name = Args.name
+		cur = File.cur() + '/'
+		path = cur + name + '/'
+		git = Dever.custom()
+		if git == 'package':
+			git = Dever.git + Dever.package
+		tmp = File.tmp() + name + '/'
+		Git.update(git + name, File.tmp() + name)
+
+		package = Dever.lib + 'dever_package/' + name + '/'
+		if not File.exists(package):
+			Core.popen('cp -R ' + tmp + ' ' + package + ' && rm -rf ' + tmp + ' && cp -R ' + path + '* ' + package + ' && rm -rf ' + path + '')
+		else:
+			Core.popen('cp -R ' + tmp + '* ' + package + ' && rm -rf ' + tmp + ' && cp -R ' + path + '* ' + package + ' && cp -R ' + path + '.git/ ' + package + '.git/ && rm -rf ' + path + '')
+
+		Dever_Create.index(cur, name, package)
+
 	@classmethod
 	def push_package(self):
 		path = Dever.lib + 'dever_package/' + Args.name