Тул или пару строчек на баше?
Aug. 16th, 2016 04:35 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
https://github.com/ahmetalpbalkan/govvv
Софтина на голанге, вызывающая go build с параметрами, устанавливающими переменные с версией, датой сборки, идентификатором ревизии гита и прочим таким.
Я бы в жизни не додумался искать такую софтину, сделал бы в скрипте вызов $(git rev-parse HEAD) и впихнул ее вывод в -ldflags, а вот однако ж - бывает. Хрен знает, насколько хорошо тащить все червей из всех закоулков гитхаба ради условного "взять готовое решение".
Софтина на голанге, вызывающая go build с параметрами, устанавливающими переменные с версией, датой сборки, идентификатором ревизии гита и прочим таким.
Я бы в жизни не додумался искать такую софтину, сделал бы в скрипте вызов $(git rev-parse HEAD) и впихнул ее вывод в -ldflags, а вот однако ж - бывает. Хрен знает, насколько хорошо тащить все червей из всех закоулков гитхаба ради условного "взять готовое решение".
no subject
Date: 2016-08-16 02:16 pm (UTC)no subject
Date: 2016-08-16 02:16 pm (UTC)no subject
Date: 2016-08-16 03:13 pm (UTC)*sh, к сожалению, провоцирует на решение, которое таких тонкостей не учитывает. А года через два, когда этот двустрочник "был всегда" - опа! грабли.
Я это не к тому, что го не провоцирует на такие решения. Я его не видел, но судя по критике - может и провоцировать. Но *sh точно провоцирует. Этого опыта у меня более чем.
no subject
Date: 2016-08-16 04:17 pm (UTC)> *sh, к сожалению, провоцирует на решение
Это не sh провоцирует, это горделивые программисты, которым западло решать неинтересные проблемы, поэтому они их решают "на отъебись". Это не космическая навигация, это блин, система сборки, все состояния кода там поддаются перечислению и осмыслению и неожиданностей там быть не может.
no subject
Date: 2016-08-16 05:18 pm (UTC)Я действительно пробовал писать на шелле аккуратно. Очень быстро выясняется, что ой. Ну, чтоб не быть голословным - конструкцию вида try-finalize там сделать можно, но только в один уровень. Что, в общем, логично, ибо trap - это перехватчик не исключений, а сигналов, другая семантика. Но сразу приходится рисовать прорву вложенных if, в которых элементарно запутаться. Будет хуже, чем на го.
Это я не шибко сложные, но и не вполне тривиальные скрипты бэкапа писал. Кончилось тем, что они были переписаны на перле (perl был выбран потому, что мне бэкапить в основном дебианы, perl там по определению есть).
no subject
Date: 2016-08-16 05:38 pm (UTC)Тоже переписал на перле, да :)
no subject
Date: 2016-08-17 03:43 pm (UTC)двухпятистрочника — всосать пяток переменных из контроля версий — чуть что не так и досвидос. Эксепшн один — exit 255.no subject
Date: 2016-08-16 03:46 pm (UTC)no subject
Date: 2016-08-16 03:55 pm (UTC)no subject
Date: 2016-08-16 07:25 pm (UTC)А в целом по вопросу - я не очень понимаю смысл использовать какой-то кривой, неполноценный, string-ориентированный язык+окружение. Т.е. я вообще не понимаю зачем этот весь ваш линукс-шелл с grep-ами и прочим. Может быть просто не пробовал. Но смысл от меня ускользает. Я беру этот свой C# со стандартной либой, и делаю все это на нем. И папки копирую, и конфиги патчу, и бекапы с баз делаю.
Впрочем, я вот юзаю тот же far, при этом никому не советую его юзать :)
no subject
Date: 2016-08-16 08:19 pm (UTC)Вот-вот. Понаделали в 70х чудо-языков, которые от лишнего пробела в if ломаются. И тащат за собой, как обезьяний хвост.
no subject
Date: 2016-08-16 11:51 pm (UTC)Смысл в том, что C# - не репл, а баш - репл.
no subject
Date: 2016-08-17 12:57 am (UTC)Мне, лично, в C# и без REPL неплохо. Хотя он есть в виде LinqPad-а, и свеженького "C:\Program Files (x86)\MSBuild\14.0\Bin\csi.exe", и иногда неплохо заходит.
no subject
Date: 2016-08-17 07:26 am (UTC)Go больше ориентирован на большие компании, много людей и много проектов. В маленьком señor сделает магический код, который будет понятен только ему, но который пишется быстрее. ( что затруднительно с Go).
У баш-скрипта очень плохая поддерживаемость - либо держим его в отдельном репозитории, что убивает преимущества баш скрипта, либо шлем потом письмо на всех с просьбой обновить скрипт.
no subject
Date: 2016-08-17 08:04 am (UTC)no subject
Date: 2016-08-17 08:18 pm (UTC)Добавил комментарий - упала база.
Этот случай позволянт ввести маленький скрипт. Только обычно их становится слишком много.