2016-12-02 4 views
1

Ich benutze Cordova CLI, um Android APKs auf meinem Ubuntu 16.04 VPS-Server zu erstellen. Sobald das APK erstellt wurde, kopiere ich es auf Dropbox auf dem lokalen Rechner und installiere dann das APK auf meinen Android-Testgeräten. Ich mag die Dropbox API verwenden, um die APK direkt zu laden, damit ich die unnötige 3-Wege-Übertragung zu vermeiden:Bedingte Ausführung Befehl in Linux Shell-Skript

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

Die Folge von Operationen würde ähnliche

  • Shell-Skripte (bereits geschrieben) auf dem Server Bereinigung der Android Quelle und den Wiederaufbau der APK
  • das mit Phonegap/Cordova ausführliche Ausgabe erfolgt auf die dafür sorgt, dass ein erfolgreicher Build gibt den folgenden Text am Ende

BUILD ERFOLGREICH

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' 

Der letzte Schritt - der android apk auf meine Dropbox hochladen nur, wenn BUILD ERFOLGREICH gefunden wird in der Cordova/Phonegap Debug-Ausgabe getan werden soll. Ich habe alles an seinem Platz bekomme, aber ich bin nicht sicher, wie ich erfolgreich für BUILD

Hier überprüfen soll, ist der Pseudo-Code in dem Shell-Skript

!# /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 

Hier ist, wo mein Wissen über Bash-Skripte, die Puffer trifft. Was würde Ich mag als nächstes tun:

  • -Test debug.txt, oben, sicherzustellen, dass die Build-
  • meine letzte Shell-Skript aufrufen

    moveapktodropbox 1 $ Wenn so erfolgreich ist

Dabei ist $ 1 der Parameter, den ich an das aktuelle Shell-Skript übergebe, um den Namen anzugeben, unter dem das APK in Dropbox gespeichert werden soll.

Antwort

3

Mit POSIX mit einem Statuscode verlassen jedes Programm sollte: bedeutet Erfolg, Warnung, und mehr Fehler.

Sie können testen, ob der Prozess Build Ausgang mit dem Statuscode 0.

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

$? bedeutet letzte Statuscode

oder prägnanter:

buildprocess && otherscript 
+0

Danke tun up - nicht das, was ich am Ende tat, aber es fügt Mein Wissen jedenfalls. – DroidOS

0

Ich landete schließlich das für diese

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