feat(pkg): 支持 apt 包管理器
This commit is contained in:
parent
ba636f0b71
commit
fed178ca63
@ -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
48
knotfiles/pkgs/apt.nu
Normal 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 }
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user