metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2016-08-16 04:35 pm

Тул или пару строчек на баше?

https://github.com/ahmetalpbalkan/govvv
Софтина на голанге, вызывающая go build с параметрами, устанавливающими переменные с версией, датой сборки, идентификатором ревизии гита и прочим таким.
Я бы в жизни не додумался искать такую софтину, сделал бы в скрипте вызов $(git rev-parse HEAD) и впихнул ее вывод в -ldflags, а вот однако ж - бывает. Хрен знает, насколько хорошо тащить все червей из всех закоулков гитхаба ради условного "взять готовое решение".

[identity profile] raydac.livejournal.com 2016-08-16 02:16 pm (UTC)(link)
я тоже в жизни не додумался бы искать такую софтину, просто в свою тулзу для голанг встроил поддержку систем контроля версий и что бы можно было сказать какая версия мне нужна в зависимостях и всё

[identity profile] juan-gandhi.livejournal.com 2016-08-16 02:16 pm (UTC)(link)
Ну у меня есть какой-то прибамбасик, сдергивает вот это вот, и дату, и фамилию автора последнего коммита, чтобы в ресурс впендюрить в скальном продукте. В принципе, все равно на чем писать; мне проще на скале.

[identity profile] besm6.livejournal.com 2016-08-16 03:13 pm (UTC)(link)
Однако ж сходу: ВНЕЗАПНО может оказаться, что собирается отнюдь не HEAD... Начиная от "незакоммиченное состояние" и заканчивая результатом checkout конкретного коммита.

*sh, к сожалению, провоцирует на решение, которое таких тонкостей не учитывает. А года через два, когда этот двустрочник "был всегда" - опа! грабли.

Я это не к тому, что го не провоцирует на такие решения. Я его не видел, но судя по критике - может и провоцировать. Но *sh точно провоцирует. Этого опыта у меня более чем.

[identity profile] berezovsky.livejournal.com 2016-08-16 03:46 pm (UTC)(link)

[identity profile] max630.livejournal.com 2016-08-16 03:55 pm (UTC)(link)
для того чтобы захотеть убить, достаточно "примеров" кода в виде анимированного gif.

[identity profile] jakobz.livejournal.com 2016-08-16 07:25 pm (UTC)(link)
Вообще, какой-то странный способ версию добавить в аппу. Я бы испугался тулзы, которая ради этого подменяет весь компилятор. Проще уж pre-build шаг добавить, например, который в go-файлик эти переменные кладет.

А в целом по вопросу - я не очень понимаю смысл использовать какой-то кривой, неполноценный, string-ориентированный язык+окружение. Т.е. я вообще не понимаю зачем этот весь ваш линукс-шелл с grep-ами и прочим. Может быть просто не пробовал. Но смысл от меня ускользает. Я беру этот свой C# со стандартной либой, и делаю все это на нем. И папки копирую, и конфиги патчу, и бекапы с баз делаю.

Впрочем, я вот юзаю тот же far, при этом никому не советую его юзать :)

[identity profile] zealer.livejournal.com 2016-08-17 07:26 am (UTC)(link)
Сделаем шаг назад.
Go больше ориентирован на большие компании, много людей и много проектов. В маленьком señor сделает магический код, который будет понятен только ему, но который пишется быстрее. ( что затруднительно с Go).
У баш-скрипта очень плохая поддерживаемость - либо держим его в отдельном репозитории, что убивает преимущества баш скрипта, либо шлем потом письмо на всех с просьбой обновить скрипт.