2016-12-02 144 views
1

我使用Cordova CLI在我的Ubuntu 16.04 VPS服務器上創建Android APK。一旦建立了APK,我將它複製到本地機器上的Dropbox,然後在我的Android測試設備上安裝APK。我想使用的Dropbox API將APK文件直接上傳所以我儘量避免不必要的3路傳輸:在Linux shell腳本中有條件執行命令

Server -> Local Machine -> Dropbox -> Android test device. 

操作的順序會是這樣的

  • Shell腳本(已寫入)上的服務器清理了Android源和重建APK
  • 這是通過在其上確保成功生成發射在端
以下文本的PhoneGap /科爾多瓦詳細輸出做0

生成成功

Total time: 5.495 secs 
Built the following apk(s): 
/path/to/app/source/platforms/android/build/outputs/apk/android-debug.apk 


No scripts found for hook "after_compile". 


No scripts found for hook "after_build". 


[36m[phonegap][39m completed 'cordova build android -d --no-telemetry' 

的最後一步 - 上傳的Android APK我的Dropbox,如果BUILD成功的科爾多瓦/ PhoneGap的調試輸出被發現時才需要這樣做。我有在地方的一切,但我不知道我應該怎麼檢查BUILD SUCCESSFUL

這裏是shell腳本

!# /bin/bash 
pgclean; 
# pgclean is another shell script that cleans up the Phonegap project in the 
# current folder 
pgbuild; 
# this rebuilds the APK and saves the detailed debug output to 
# /path/to/my/project/debug.txt 
# it is debug.txt which would contain BUILD SUCCESSFUL etc 

這裏是我的bash腳本的知識命中緩衝區的僞代碼。我想下一步該怎麼做:

  • 測試DEBUG.TXT,以上,以確保構建成功
  • 如果是這樣叫我的最後的shell腳本

    moveapktodropbox $ 1

其中$ 1是我傳遞給當前shell腳本以提供APK在Dropbox中存儲的名稱的參數。

回答

3

隨着POSIX每個程序應用的狀態代碼退出:裝置成功警告,更錯誤

你可以測試,如果構建過程與退出狀態代碼0

buildprocess 
if [ $? -eq 0 ] ; then otherscript ; fi 

$?意味着最後狀態代碼

或更簡潔:

buildprocess && otherscript 
+0

感謝你爲這個 - 不是我最後還是沒買,但它增加了無論如何,我的知識。 – DroidOS

0

我終於結束了做這個

x=$(grep -c "BUILD SUCCESSFUL" /path/to/my/app/debug.txt); 
if [ $x -eq 1 ]; then 
moveit $1; 
echo "Good Build"; 
exit; 
fi;