Морковка самовыдергивающаяся
Jun. 7th, 2017 03:48 pmЖуткое нагромождение из bash, awk и python сегодня таки поехало и собрало заготовку под ораклический сервер.
Ретроспективно некоторые решения были ужасны, но оно все работает весьма бодро.
В ближайших планах (в смысле, это уже в главной ветке, но не в релизе) перенос части баша в питон и дальнейшая минимизация кикстарта.
И, чем черт не шутит, переписывание верхнего селектора на питоне.
Кстати,
grey_and_furry, как наиболее кошерно эмулировать and-list в питоне?
1) Через assert внутри try-except:
2) или через вложенные if и общий статус:
вариант 3 - просто фигануть call("ls -l && pwd", shell = True) мне не нравится, ибо нафиг стартовать оболочку вместо тонкой обертки поверх exec() - ну и нафиг морочиться питоном ради такой фигни
Ретроспективно некоторые решения были ужасны, но оно все работает весьма бодро.
В ближайших планах (в смысле, это уже в главной ветке, но не в релизе) перенос части баша в питон и дальнейшая минимизация кикстарта.
И, чем черт не шутит, переписывание верхнего селектора на питоне.
Кстати,
1) Через assert внутри try-except:
assert call(["ls", "-l"]) == 0 ... assert call(["pwd"]) == 0
2) или через вложенные if и общий статус:
success = False
if call(["ls", "-l"]) == 0:
if call(["pwd"]) == 0:
...
if call(["ifconfig"]) == 0:
success = True
if success:
# some code
pass
else:
# some other code
pass
вариант 3 - просто фигануть call("ls -l && pwd", shell = True) мне не нравится, ибо нафиг стартовать оболочку вместо тонкой обертки поверх exec() - ну и нафиг морочиться питоном ради такой фигни
(no subject)
Date: 2017-06-07 08:19 pm (UTC)(no subject)
Date: 2017-06-07 08:50 pm (UTC)Из эзотерических соображений - текущая логика при фейле все равно сдыхает без попытки восстановления или разбора кода, так что использование исключений не "штатная ветка логики", это как раз "культурно помереть".