Вопрос Знатокам Bash и Mercurial - как написать скрипт с условием.

S3
На сайте с 29.03.2012
Offline
366
762

Немножко затронув баш, понял что могу здорово упростить себе жизнь при деплое, вникнув как это все работает +крон

Хочу себе небольшой скрипт, который будет Проверять обновления в репозитарии, При их наличии апдэйтить проект и перегружать супервизор. ЧТо уже есть:

Простой скрипт, который все это делает, но безусловно


#!/bin/bash
hg pull https://user:****@bitbucket.org/user/project_name
hg update default

Работает, но получается если обновлений нет - вхолостую дергает update

Как написать условие и что проверять, есть ли обновление? Все что я вижу - это сообщение от битбакета в консоли об отсутствии обновление( если их нет)


searching for changes
no changes found
0 files updated, 0 files merged, 0 files removed, 0 files unresolved

Как это можно обработать в скрипте. Видел на стэке вариант с hg status - сравнивать обновленные файлы до и после затягивания, но кажется каким то сложным

Ждем ответ Знатоков)

Оптимизайка
На сайте с 11.03.2012
Offline
396
#1
⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
[Удален]
#2

hg pull -u

S3
На сайте с 29.03.2012
Offline
366
#3

Господа Оптимизайка, imagine, а можно с пояснениями для нуба? Мне нужно не только сделать, о и понять иначе я не играю)))

Обьединение команд в одну строку через && -это же тоже самое что последовательное выполенение? Они же все равно будут все последовательно выполенны независимо от предыдущей?

hg pull -u - аналогично - это обьединение pull и update, опять же безусловное?

DV
На сайте с 01.05.2010
Offline
644
#4

Последующие команды выполняются при условии благополучно завершённых предыдущих.

Каждая команда на выходе даёт сигнал.

А вообще, башизм зло.

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
Оптимизайка
На сайте с 11.03.2012
Offline
396
#5
Sly32:
Обьединение команд в одну строку через && -это же тоже самое что последовательное выполенение?

Each command returns exit status code when it's completed.

For example, hg help incoming says:


Возвращает 0 если есть входящие изменения, 1 в противном случае.

&& operator will execute next command only if previous command returns 0.

S3
На сайте с 29.03.2012
Offline
366
#6

DenisVS, Спасибо, теперь понятнее. Почему зло? какие есть варианты?

DV
На сайте с 01.05.2010
Offline
644
#7
Sly32:
Почему зло?

Потому что диалект.

Потому что ориентирован на юзерфрендлизм в первую очередь и скритинг во вторую (последнюю).

Потому что поддердживается ограниченным количеством систем.

Sly32:
какие есть варианты?

Канонический Bourne shell.

Идёт на всём, даже на коробочках-роутерах, на телефонах, на телевизорах и на плейстейшн 4.

Это не к вопросу ломания копий лучше/хуже нравится/ненравится, а к тому, что учить в первую очередь.

Зная sh, не пропадёте нигде в *nix.

А с bash постоянно будете сталкиваться с синдромом изучившего Бейсик. Вроде знаю-умею, а то понос, то золотуха.

S3
На сайте с 29.03.2012
Offline
366
#8

DenisVS, Спасибо, буду иметь ввиду)

По факту вопроса решил не заморачиваться с проверками, простое выполнение скрипта работает как надо. Единственное - надо убрать пароль и сгенерировать сертификат для доступа к битбакету, для пущей безопасности.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий