소스 검색

java不能直接使用nohup启动python,必须创建新的会话终端才能将所有环境变量自动包含,否则python调用shell命令或脚本时,会提示repo:command not found.

JeffWang 3 년 전
부모
커밋
7775cc5a77
1개의 변경된 파일16개의 추가작업 그리고 9개의 파일을 삭제
  1. 16 9
      自动编译系统脚本标准化/builder.py

+ 16 - 9
自动编译系统脚本标准化/builder.py

@@ -72,14 +72,16 @@ def loadJson():
     return True
 
 # 不使用重定向;
-def cmdExecute2(cmd, dir=None):
+def cmdExecute_NoRidrect(cmd, dir=None):
     print(str.format("cmd start:%s, %s") % (cmd, time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())))
     proc = subprocess.Popen(cmd, shell=True, cwd=dir)
     # 等待完成;
     proc.wait()
     print(str.format("cmd end:%s, %s") % (cmd, time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())))
 
-def cmdExecute(cmd, dir=None):
+
+# 重定向标准输出、标准错误;
+def cmdExecute_Ridrect(cmd, dir=None):
     print(str.format("cmd start:%s, %s") % (cmd, time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())))
     proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True, cwd=dir)
     # 等待完成;
@@ -113,17 +115,22 @@ def prev_compile():
         print(type(PREV_ARG['redownload']), PREV_ARG['redownload'])
 
     # 更新代码;
-    commands=None
+    commands=[]
     if 'sync' in PREV_ARG and PREV_ARG['sync']:
         print("start sync")
-        commands = str.format("export PATH=$PATH:/bin/git-repo/;cd %s;repo sync") % CODE_DIR
-        cmdExecute(commands, CODE_DIR)
+        # Java创建会话终端(导入了所有环境变量),无须再export,解决repo:commnand not found的问题;
+        #commands.append("export PATH=$(echo $PATH)") 
+        commands.append(str.format("cd %s") % CODE_DIR)
+        commands.append("repo sync")
+        commandline=';'.join(commands)
+        cmdExecute_Ridrect(commands, CODE_DIR)
     
     # 重新下载;
     commands=[]
     if 'redownload' in PREV_ARG and PREV_ARG['redownload']:
         print("start redownload")
-        commands.append("export PATH=$PATH:/bin/git-repo/")
+        # Java创建会话终端(导入了所有环境变量),无须再export,解决repo:commnand not found的问题;
+        #commands.append("export PATH=$(echo $PATH)") 
         commands.append(str.format("cd %s") % CODE_DIR)
         commands.append(str.format("rm -rf !(%s|%s|%s|%s)") % ("builder.py", "arg.json", "51M-CompileScript.sh", "ftp.py"))
         # 已在编译路径中,无须处理;
@@ -133,7 +140,7 @@ def prev_compile():
         commands.append(str.format("repo init -u %s") % (PREV_ARG['branch-addr']))
         commands.append("repo sync")   
         commandline=';'.join(commands)
-        cmdExecute(commandline)
+        cmdExecute_Ridrect(commandline)
 
 
 def call_script():
@@ -156,8 +163,8 @@ def call_script():
         return False
 
     print("start to compile")
-    # 调用编译脚本时,不需要重定向,否则无法生成日志;
-    cmdExecute2(str.format("cd %s;chmod 777 %s;./%s %s")%(CODE_DIR,SCRIPT_NAME,SCRIPT_NAME,commandline), CODE_DIR)
+	# 调用编译脚本时,不需要重定向,否则无法生成日志;
+    cmdExecute_NoRidrect(str.format("cd %s;chmod 777 %s;./%s %s")%(CODE_DIR,SCRIPT_NAME,SCRIPT_NAME,commandline), CODE_DIR)
 
     return True