Инициализация репозитория
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
#!/bin/sh
|
||||
|
||||
# CPM - Calista Package Manager
|
||||
# Версия: 1.2
|
||||
|
||||
# Проверяем, установлен ли pkg
|
||||
if ! command -v pkg >/dev/null 2>&1; then
|
||||
echo "Ошибка: pkg не установлен или не найден в PATH" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Функция для фильтрации стандартных пакетов FreeBSD
|
||||
filter_freebsd_packages() {
|
||||
pkg info | grep -v '^FreeBSD-'
|
||||
}
|
||||
|
||||
# Функция для получения списка пользовательских пакетов (корневых)
|
||||
get_custom_packages() {
|
||||
filter_freebsd_packages | awk '{print $1}'
|
||||
}
|
||||
|
||||
# Функция для получения имен всех установленных пакетов
|
||||
get_all_packages() {
|
||||
pkg info | awk '{print $1}'
|
||||
}
|
||||
|
||||
# Обработка команд
|
||||
case "$1" in
|
||||
"info")
|
||||
if [ "$2" = "-v" ]; then
|
||||
# Подробная информация о каждом пользовательском пакете
|
||||
get_custom_packages | while read -r package; do
|
||||
echo "=== Информация о пакете: $package ==="
|
||||
pkg info "$package"
|
||||
echo ""
|
||||
done
|
||||
elif [ "$2" = "-dtree" ]; then
|
||||
build_dependency_tree
|
||||
else
|
||||
# Простой список пользовательских пакетов
|
||||
filter_freebsd_packages
|
||||
fi
|
||||
;;
|
||||
|
||||
"deptree")
|
||||
deptree -s "$2"
|
||||
;;
|
||||
|
||||
"install")
|
||||
if [ -z "$2" ]; then
|
||||
echo "Использование: cpm install <имя_пакета>" >&2
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
pkg install "$@"
|
||||
;;
|
||||
|
||||
"delete"|"remove")
|
||||
if [ -z "$2" ]; then
|
||||
echo "Использование: cpm $1 <имя_пакета>" >&2
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
pkg delete "$@"
|
||||
;;
|
||||
|
||||
"autoremove")
|
||||
pkg autoremove
|
||||
;;
|
||||
|
||||
"upgrade")
|
||||
pkg upgrade
|
||||
;;
|
||||
|
||||
"update")
|
||||
pkg update
|
||||
;;
|
||||
|
||||
"search")
|
||||
if [ -z "$2" ]; then
|
||||
echo "Использование: cpm search <запрос>" >&2
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
pkg search "$@"
|
||||
;;
|
||||
|
||||
"clean")
|
||||
pkg clean
|
||||
;;
|
||||
|
||||
"version"|"-v"|"--version")
|
||||
echo "CPM - Calista Package Manager wrapper v1.2"
|
||||
echo "Использует: $(pkg -v)"
|
||||
;;
|
||||
|
||||
"help"|"-h"|"--help")
|
||||
cat << EOF
|
||||
CPM - Calista Package Manager
|
||||
|
||||
Использование: cpm <команда> [опции]
|
||||
|
||||
Команды:
|
||||
info Список установленных пакетов (без стандартных FreeBSD)
|
||||
info -v Подробная информация о всех пользовательских пакетах
|
||||
info -dtree Дерево зависимостей пользовательских пакетов
|
||||
deptree <пакет> Полное дерево зависимостей для конкретного пакета
|
||||
install <пакет> Установить пакет
|
||||
delete <пакет> Удалить пакет
|
||||
autoremove Удалить неиспользуемые зависимости
|
||||
upgrade Обновить все пакеты
|
||||
update Обновить репозиторий пакетов
|
||||
search <запрос> Поиск пакетов
|
||||
clean Очистить кэш пакетов
|
||||
version Показать версию
|
||||
help Показать эту справку
|
||||
|
||||
Примеры:
|
||||
cpm info
|
||||
cpm info -v
|
||||
cpm info -dtree
|
||||
cpm deptree nano
|
||||
cpm install nano
|
||||
cpm delete nano
|
||||
cpm search python
|
||||
EOF
|
||||
;;
|
||||
|
||||
*)
|
||||
if [ -z "$1" ]; then
|
||||
echo "Использование: cpm <команда>" >&2
|
||||
echo "Для справки: cpm help" >&2
|
||||
exit 1
|
||||
else
|
||||
echo "Неизвестная команда: $1" >&2
|
||||
echo "Для справки: cpm help" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user