Bashler
- сборщик .sh
файлов, который из коробки имеет полезные функции, для пользовательского использования Linux
системы.
Что включает в себя сборщик:
- Собирает множество
.sh
файлов, в единыйsource_code.sh
файл; - Проверка уникальности имени алиаса и функции, при сборки в единый
source_code.sh
файл; - Упаковка
python
файлов, документации, и.sh
файлов вexport_bashler.zip
архив, чтобы можно было легко распространять; - Документирует алиасы и функции в
.sh
файлах, вdoc_source_code.md
; - Позволяет делать поиск по алиасам и функциям, в
.sh
файлах;
Ссылки:
Для того, чтобы ваши функции и алиасы были доступны во всех оболочка, вам нужно импортировать файл ./source_code.sh
в ~/.zshrc
или ~/.bashrc
.
Пример как это можно сделать:
# ОС (ubuntu/arch/termix)
export BASE_SYSTEM_OS="ubuntu"
# Путь к Bahler
export BASHLER_PATH="$HOME/bashler"
###
# Подключить `Bashler`
source "$BASHLER_PATH/source_code.sh"
-
doc ШаблонФункции
Поиск функций подходящих по указному шаблону.Для того чтобы отображалась документация у функций, ей нужно писать на новой сроке после символа
{
, будут все первые комментарииПример
ИмяФункции() { # Документация которая отобразиться # Документация которая отобразиться # Документация которая отобразиться # Документация которая отобразиться ~py -c " import sys sys.path.insert(0,'$BASHLER_PATH_PY') from doc_serach import manger_search_func manger_search_func() " $@ } # А этот текс уже не отобразиться
-
an ШаблонИмениАлиаса
Поиск алиасов по имениПервыми в список попадут алиасы из проекта, а потом все остальные
-
av ШаблонЗначенияАлиаса
Поиск алиасов по значению Первыми в список попадут алиасы из проекта, а потом все остальные
Часто бывает нужно выбрать несколько файлов или папок, для использования их в качестве аргументов в CLI командах.
По моему самый удобный способ - это вывести список всех файлов и папок, и через пробел выбрать те что мне нужны. Поэтому я и сделал утилиту pls
Вызвать команду:
pls [Путь]
Клавиши для управления:
Стрелка Вверх/Вниз
= Вверх или вниз;Стрелка Вправо/Влево
= На следующие или на предыдущею страницу;Пробел/Enter
= Выбрать;Q/Esc
= Выйти, после выхода из TUI, в консоль выведутся все выбранные файлы и папки;
Существуют множества пакетных менеджеров, которые делают одно и тоже но имеют разные команды, я стандартизировал основные команды
-
Установка пакета =
pinst ИмяПакета
. Можно указывать также.dep
файлы. На основе переменной окружение$BASE_SYSTEM_OS
подберется команда для установки пакета. Также все имена пакетов которые вы устанавливаете через эту команду будут записаны в файл~/.bashler_pinst
-
Удаление пакета =
prem ИмяПакета
. На основе переменной окружение$BASE_SYSTEM_OS
подберется команда для удаления пакета. Также все имена пакетов которые вы удалили через эту команду будут удалены из файла~/.bashler_pinst
-
Обновление пакетов =
pupd
. Обновление у пакетного менеджера уsnap
иflatpak
в файле ~/.zshrc
нужно создать переменную окружения по имени export AUTORUN_BASHLER="$HOME/.autorun_bashler"
которая будет хранить путь к файлу, в этом файле мы запишем команды, который должен по порядку единожды(до перезагрузки системы) выполниться в фоновом режиме в разных процессах.
-
Структура файла
.autorun_bashler
(Вы можете использовать алиасы и переменные окружения).["Команда_1", "Команда_2", "Команда_N"]
-
После этого мы можем запустить команды. Они выполнятся единожды(до перезагрузки системы).
autorun-bashler
-
Принудительно запустить программы.
autorun-bashler-force
Для удобного хранения данных для удаленного доступа, нужно создать файл .bashler_remote
. И указать в переменной BASHLER_REMOTE_PATH
путь к этому файлу.
У него будет следующая структура:
{
"ssh":{
"ПроизвольноеИмяПодключения_SSH":{
"user":"ИмяПользователяНаСервере",
"host":"IP",
"port":8080
}
, ...
},
"rsync":{
"ПроизвольноеИмяПодключения_RSYNC":{
// Берем настройки из SHH подключения
"ssh":"ПроизвольноеИмяПодключения_SSH",
// Настройки того что и куда нужно синхронизировать
"sync_dir":[
{
"in":"ПапкаОткуда"
,"out":"ПапкаКуда"
// Исключить Список Путей
,"e":"Путь1,Путь2,...",
// Если True то удаляет файлы и папки которые есть в `out`, но которых нет в `in`
"d":true
}
, ...
]
}
}
}
- Пример подключения по
SSH
используя данные из файла.bashler_remote
ssh-cf ПроизвольноеИмяПодключения
- Пример удаленной синхронизации файлов через
rsync
используя данные из файла.bashler_remote
rsync-parse-conf regПроизвольноеИмяПодключенияru1
- Если начинается на
\w
(буквы), то это обычная функция, которая будет документироваться; - Если начинается на
_
, то это вспомогательная функций, которая НЕ будет документироваться; - Если начинается на
--
, то это системная функция, которая НЕ будет документироваться;
Все новые .sh
файлы должны храниться в папке ./sh
Если вы хотите модифицировать bashler
по себя, то вы можете создавать новые файлы .sh
файлы в папке ./sh
.
Чтобы эти файлы собрались в единый source_code.sh
-> выполните команду:
python _build.py
При выполнение
python _build.py
также создается новая документация функций в./doc_source_code.md
После этого, пере подключите файл source_code.sh
в текущем терминале
source "$BASHLER_PATH/source_code.sh"