feat(pkg): 支持 apt 包管理器

This commit is contained in:
KAAAsS 2024-03-25 15:44:53 +08:00
parent ba636f0b71
commit fed178ca63
Signed by: KAAAsS
GPG Key ID: D22F53AF662411FE
2 changed files with 50 additions and 0 deletions

View File

@ -3,12 +3,14 @@
# Copyright (C) 2022 KAAAsS
use pkgs/pacman.nu
use pkgs/homebrew.nu
use pkgs/apt.nu
export-env {
# 所有可用的包管理器
$env.package_managers = [
(pacman pack),
(homebrew pack),
(apt pack),
(fallback_manager)
]
# 计算默认包管理器

48
knotfiles/pkgs/apt.nu Normal file
View File

@ -0,0 +1,48 @@
# apt.nu -- apt 管理器的实际实现
#
# Copyright (C) 2024 KAAAsS
# 检查包管理器是否可用
export def available? [] {
not (which apt | is-empty) and not (which dpkg | is-empty)
}
# 检查包是否安装
export def check_install? [
pkg_name: string
] {
let ret = (
do -i { dpkg -s $pkg_name } | complete
)
$ret.exit_code == 0
}
# 安装包
export def install [
pkg_name: string
] {
let ret = (
do -i { apt install $pkg_name -y } | complete
)
$ret.exit_code == 0
}
# 卸载包
export def uninstall [
pkg_name: string
] {
let ret = (
do -i { apt remove $pkg_name -y } | complete
)
$ret.exit_code == 0
}
export def pack [] {
{
"name": "apt",
"available?": { available? },
"check_install?": {|p| check_install? $p },
"install": {|p| install $p },
"uninstall": {|p| uninstall $p }
}
}