2016-12-02 2 views
1

Я использую CLI Cordova для создания Android APK на моем Ubuntu 16.04 VPS сервере. После создания APK я копирую его в Dropbox на локальном компьютере, а затем устанавливаю APK на своих тестовых устройствах Android. Я хочу использовать API Dropbox, чтобы загрузить APK напрямую, поэтому я избежать ненужной передачи 3 способа:Условно выполнить команду в сценарии оболочки Linux

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

Последовательности операций будет идти такими скриптами

  • Shell (уже писали) на сервер очистки источника Android и восстановить APK
  • Это делается с PhoneGap/Кордова подробный вывод, на котором гарантирует, что успешная сборка выдает следующий текст в конце

BUILD УСПЕШНЫЙ

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 УСПЕШНОГО

Вот псевдокод в сценарии оболочки

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

Вот где мое знание Баш сценариев поражает буферов. То, что я хотел бы сделать следующий:

  • Test debug.txt выше, чтобы гарантировать, что сборка успешно
  • Если так назвать мой окончательный скрипт

    moveapktodropbox $ 1

где $ 1 - это параметр, который я передаю текущему сценарию оболочки, чтобы указать имя, под которым 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; 
Смежные вопросы