Привет. Недавно я сильно апгрейднул всю свою, скажем так, экосистему. Я уже сделал заметку в канале, но аудитория блога больше канала, так что расскажу здесь подробнее что произошло.
Привет. Надеюсь, эта шпаргалка поможет тебе установить собственное «гитхаб»-лайк хранилище кода. Очень рекомендую это сделать, причём на отдельный сервер.
Делал я это, используя бинарник. Вкратце, шаги простые:
Привет. Завёлся однажды у меня смок. В целом, как первенец, он меня устроил. Но спустя примерно полгода я решил сменить устройство. Ниже расскажу что к чему, кратко, в сравнении.
Привет. Я тут запилил простой скрипт для установки кастомного разрешения экрана на Ubuntu.
Однажды, я столкнулся с такой проблемой. Есть два 100% одинаковых монитора. Оба работают в максимальном разрешениии 1600×900. Оба подключены к родным видео-выходам на материнке. Однако один монитор подключен к D-Sub напрямую, а второй — через переходник HDMI <-> D-Sub. И картинка на втором по умолчанию всегда в 1920×1080, которое монитор героически сжимает в свои 1600×900 (и которое внезапно отсутствует в настройках). В результате на экране мелкое невнятное мыло, но судя по всему, картинка выдаётся в настоящем FullHD.
Ниже — получившийся скрипт. На самом деле, я уже не один год использовал его упрощённую версию для себя. Просто я причесал его, чтобы выложил в паблик. Всё работает хорошо. Тебе остаётся только выставить положения мониторов в настройках ОС (и там, кстати, появится новый недостающий режим). Скрипт можно использовать также и с одним монитором.
Привет. Я в свободное время для рабочих целей пишу один проект, который состоит из кучи bash-скриптов. Есть одна точка входа, которая из cli принимает аргументы. Этот скрипт подключает остальные куски функционала через source. В этих кусках описаны функции, которые должны обрабатывать разные аргументы, нужные только для чего-то конкретного.
В первой версии проекта я просто явно передавал $1, $2, $N сверху вниз, в другие функции. Это было топорным решением, и оно работало, потому что возможные аргументы и их порядок был известен и прост. Но эстетически это было отвратительно. Чтобы мне было приятно смотреть на код, нужно было сильно усложнить вообще всё, чтобы всё стало намного проще.
Итак, я должен принимать от пользователя разные аргументы в разные функции, при этом я хочу дать пользователю возможность передать на вход:
длинные аргументы без значений: ./script.sh --foo --bar
длинные аргументы со значениями: ./script.sh --foo=bar
короткие аргументы без значений: ./script.sh -a -b -c
короткие аргументы со значениями: ./script.sh -a avalue -b bvalue
комбинировать короткие любые короткие аргументы в одно слово: ./script.sh -abc bvalue
всё перечисленное выше — одновременно!
порядок аргументов не должен иметь значения
иметь доступ к любому из них откуда угодно в любой момент времени.