Уличная магия
Jun. 26th, 2019 10:42 pmКак известно, если все, что у тебя есть - это молоток, то рано или поздно все окажется гвоздем.
Есть чудное поделие на баше, которое с помощью curl, jq, awk и прочей уличной магии изображает, и достаточно успешно, клиента HTTP-интерфейса. Который культурно принимает JSON и отдает JSON.
Работающее поделие, надо сказать.
В результате имеем пусть относительно компактный, но фигово читаемый и фигово сопровождаемый код. Почему не применить питон с его удобной работой со строками, словарями и http - неясно.
И теперь ужасы нашего городка. Код был написан на маке. Одна из инструкций - это засунуть чудовищную JSON-портянку (140 КБ) в... башевскую переменную (не во временный файл, коих, тем не менее, создается с полдюжины, а именно в переменную). На маке это проходит, а вот на убунте подрывается, потому как она скомпилирована так, что все переменные баша гуртом должны влезать в 128К. Ибо нефиг, 640К хватит на всех, ну и тащемта если у вас в баше больше двух экранов переменных, из которых хотя бы пара (за вычетом PATH) не влезают в строку, то вы явно делаете что-то не то.
Я, конечно, невеликий погромист на баше и питоне, но я имею мнение хрен оспоришь, что как только вы понимаете, что ваш баш-скрипт грозит вылезти за два экрана, подумайте, не хотите ли вы это же написать на питоне - если, конечно, у вас есть питон, и если вам на питоне не придется то и дело дергать subprocess.
Не, можно писать многосотстрочные рабочие и поддерживаемые баш-скрипты, но нужно ли?
Есть чудное поделие на баше, которое с помощью curl, jq, awk и прочей уличной магии изображает, и достаточно успешно, клиента HTTP-интерфейса. Который культурно принимает JSON и отдает JSON.
Работающее поделие, надо сказать.
В результате имеем пусть относительно компактный, но фигово читаемый и фигово сопровождаемый код. Почему не применить питон с его удобной работой со строками, словарями и http - неясно.
И теперь ужасы нашего городка. Код был написан на маке. Одна из инструкций - это засунуть чудовищную JSON-портянку (140 КБ) в... башевскую переменную (не во временный файл, коих, тем не менее, создается с полдюжины, а именно в переменную). На маке это проходит, а вот на убунте подрывается, потому как она скомпилирована так, что все переменные баша гуртом должны влезать в 128К. Ибо нефиг, 640К хватит на всех, ну и тащемта если у вас в баше больше двух экранов переменных, из которых хотя бы пара (за вычетом PATH) не влезают в строку, то вы явно делаете что-то не то.
Я, конечно, невеликий погромист на баше и питоне, но я имею мнение хрен оспоришь, что как только вы понимаете, что ваш баш-скрипт грозит вылезти за два экрана, подумайте, не хотите ли вы это же написать на питоне - если, конечно, у вас есть питон, и если вам на питоне не придется то и дело дергать subprocess.
Не, можно писать многосотстрочные рабочие и поддерживаемые баш-скрипты, но нужно ли?
(no subject)
Date: 2019-06-29 02:12 pm (UTC)я вот неделю ебался с установкой простого netbox, потому что в нем нет единого скрипта, а куча инструкций - скачайте то, запустите это, заполируйте вон тем, и все это еще подкачивает тонны говн из интернета, в том числе питон.
(ну неделю не поэтому, но в целом).
ну и зачем такое для изолированных систем? Если оно еще не просто питоно зависимое, а питоно-версио-зависимое?
(no subject)
Date: 2019-06-30 06:22 am (UTC)