Как часто приходилось видеть репозиторий с кастомным скриптом по установке своих скриптов .bashrc или .zshrc файлы? Я точно писал такой велосипед и не один раз, для репозиториев, где храню свои личные конфиги. Давайте эту проблему решать.
![](https://habrastorage.org/r/w1560/files/5ec/280/7d3/5ec2807d35bf499bbecf005e044906cf.png)
Примеров таких велосипедов тьма тьмущая:
Я думаю и вы писали подобный велосипед. Так что мне пришло в голову это дело обобщить. Быстрый поиск не дал результатов и я написал свою поделку. Может что похожее уже и есть, но мне пока никто на это не указал. Вот как теперь выглядит README.md файл моего репозитория с конфигами:
In order to install config please do:
Важно обратить внимание вот сюда:
Это пример использования того самого фреймворка с названием “rcinstaller”. Репозиторий с ним можно найти вот тут.
Теперь вам нужно лишь создавать конфиги, а их интеграцию можете оставить этой поделке.
Проще не бывает, просто добавьте в ваш README файл что-то вроде:
На момент написания статьи скрипт выполнял нехитрый список шагов:
Как нетрудно догадаться, ваш конфиг должен иметь уникальное имя, так как скрипт тупо перезатрет существующий файл с таким же именем. Пока что поддерживается только один скрипт за раз.
Если хочется помочь — есть список задач и багов. Ну и конечно можно зайти на мою страничку на Patreon.
Добрый люди мне уже объяснили что такое использование curl может быть не совсем безопасным.
![](https://habrastorage.org/files/5ec/280/7d3/5ec2807d35bf499bbecf005e044906cf.png)
Примеров таких велосипедов тьма тьмущая:
- https://github.com/mcorah/configs/blob/master/install.sh
- https://github.com/nathschmidt/bashrc/blob/master/install.sh
Я думаю и вы писали подобный велосипед. Так что мне пришло в голову это дело обобщить. Быстрый поиск не дал результатов и я написал свою поделку. Может что похожее уже и есть, но мне пока никто на это не указал. Вот как теперь выглядит README.md файл моего репозитория с конфигами:
In order to install config please do:
cd /tmp
git clone https://github.com/OwnInfrastructure/configs.git
cd configs
RC_PATH=.commonrc
curl -s https://raw.githubusercontent.com/b0noI/rcinstaller/master/install.sh | bash /dev/stdin $RC_PATH
Важно обратить внимание вот сюда:
curl -s https://raw.githubusercontent.com/b0noI/rcinstaller/master/install.sh | bash /dev/stdin $RC_PATH
Это пример использования того самого фреймворка с названием “rcinstaller”. Репозиторий с ним можно найти вот тут.
Теперь вам нужно лишь создавать конфиги, а их интеграцию можете оставить этой поделке.
Как начать использовать это на своем репозитории
Проще не бывает, просто добавьте в ваш README файл что-то вроде:
curl -s https://raw.githubusercontent.com/b0noI/rcinstaller/master/install.sh | bash /dev/stdin <path_to_my_awesome_rc_file>
Что эта штука умеет делать?
На момент написания статьи скрипт выполнял нехитрый список шагов:
- Проверяет существует ли директория ~/.profile.d, и если нет то создает ее.
- Добавлчет в .zshrc (если там еще нету этого): “[ -f ${HOME}/.profile.d/.sh ] && source ${HOME}/.profile.d/.sh” .
- Тоже самое но для .bashrc.
- Копирует заданный скрипт в ~/.profile.d.
Как нетрудно догадаться, ваш конфиг должен иметь уникальное имя, так как скрипт тупо перезатрет существующий файл с таким же именем. Пока что поддерживается только один скрипт за раз.
Как вы можете помочь проекту
Если хочется помочь — есть список задач и багов. Ну и конечно можно зайти на мою страничку на Patreon.
ВНИМАНИЕ!
Добрый люди мне уже объяснили что такое использование curl может быть не совсем безопасным.