feat(pkg): 支持 apt 包管理器
This commit is contained in:
parent
ba636f0b71
commit
fed178ca63
@ -3,12 +3,14 @@
|
|||||||
# Copyright (C) 2022 KAAAsS
|
# Copyright (C) 2022 KAAAsS
|
||||||
use pkgs/pacman.nu
|
use pkgs/pacman.nu
|
||||||
use pkgs/homebrew.nu
|
use pkgs/homebrew.nu
|
||||||
|
use pkgs/apt.nu
|
||||||
|
|
||||||
export-env {
|
export-env {
|
||||||
# 所有可用的包管理器
|
# 所有可用的包管理器
|
||||||
$env.package_managers = [
|
$env.package_managers = [
|
||||||
(pacman pack),
|
(pacman pack),
|
||||||
(homebrew pack),
|
(homebrew pack),
|
||||||
|
(apt pack),
|
||||||
(fallback_manager)
|
(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