Dv4cfg

Haixin Pang 二月 25, 2025 #PRO

手册

配置

基本属性

名称必要性类型默认值描述待定
id可选string用于区分不同的存档用于区分多个配置文件
local可选local_device本地设备配置
ssh可选[ssh_device]ssh设备配置
group可选[task_group]以组为单位执行任务
auto可选[auto_task]用于自启动服务管理
copy可选[copy_task]用于拷贝文件
app可选[app_task]用于本机应用管理(包管理)
exec可选[exec_task]执行命令(脚本)

设备配置

每个设备由普通用户与超级用户组成,目前用户只有当前用户,与ssh用户两种。

当前用户(local)配置如下

名称必要性类型默认值描述待定
uid可选stringthis用于区分用户,指代当前用户
mount可选path~/.config/dvcopy_task中相对路径展开

ssh用户(ssh_user)配置如下

名称必要性类型默认值描述待定
uid必须string用于区分用户,指代ssh用户
host必须stringssh_config文件中的Host,用于查找ssh配置
passwd可选stringssh用户密码

本地设备配置(local_device)如下

名称必要性类型默认值描述待定
hid必须stringlocal用于区分设备,指代本机
user必须local本机用户配置
system可选ssh_user本机超级用户(管理员)暂时复用ssh,未来可能写一个通用agent

ssh设备配置(ssh_device)如下

名称必要性类型默认值描述待定
hid必须string用于区分设备,指代远程设备
os可选manjaro|alpine|...远程设备操作系统
users可选[ssh_user]远程用户配置
system可选ssh_user远程设备超级用户(管理员)

基本任务配置

每个任务的基本属性(task_attr)如下

名称必要性类型默认值描述待定
id必须string用于区分任务
next可选[string]表明任务之间的拓扑关系

目前任务之间只支持next关系,未来可能支持更多关系。

任务目标(target)类型如下

名称必要性类型默认值描述待定
src_uid可选string操作来源
dst_uid可选string操作目标

自启动服务(auto_task)

名称必要性类型默认值描述待定
attr必须task_attr任务基本属性
uid可选string目标用户
name必须string任务名称
action必须setup|reload执行的动作

文件拷贝(copy_task)

名称必要性类型默认值描述待定
attr必须task_attr任务基本属性
target可选target操作用户
pair必须[(string,string)]拷贝的文件

软件管理(app_task)

名称必要性类型默认值描述待定
attr必须task_attr任务基本属性
uid可选string目标用户
pkgs必须[string]安装的软件

执行命令(exec_task)

名称必要性类型默认值描述待定
attr必须task_attr任务基本属性
uid可选string目标用户
shell可选string执行命令使用的shell
command必须string执行的命令

任务划分

引用(cite)

名称必要性类型默认值描述待定
attr必须task_attr引用基本属性
target可选target操作用户

引用基本属性的id与被引用任务的id相同。可以引用任务组,也可以引用单个任务。target将会填充引用任务的targetdst_uid填充引用任务的uid

举例: {{< code-toggle >}} app: attr: id: 'task1' pkgs: - "fakeroot" group: id: 'group1' cites: - attr: id: 'task1' target: dst_uid: 'this' {{< /code-toggle >}} 将会替换为 {{< code-toggle >}} group: id: 'group1' app: attr: id: 'task1' uid: 'this' pkgs: - "fakeroot" {{< /code-toggle >}}

任务分组(task_group)

名称必要性类型默认值描述待定
id必须string区分不同任务(组)
target可选target目标用户
cites可选[cite]引用的其他任务(组)
auto可选[auto_task]用于自启动服务管理
copy可选[copy_task]用于拷贝文件
app可选[app_task]用于本机应用管理(包管理)
exec可选[exec_task]执行命令(脚本)

分组的taget同上,逐级向下传递。

命令行参数

Simple CLI to use dv-api with toml/yaml/json

Usage: dv4cfg [OPTIONS] <COMMAND>

Commands:
  full-config  Print example config [aliases: fc]
  exec         Execute plan [aliases: e]
  help         Print this message or the help of the given subcommand(s)

Options:
  -d, --directory <DIRECTORY>  [default: /home/$USER/.config/dv/]
  -c, --config <CONFIG>        
  -h, --help                   Print help
  -V, --version                Print version
Print example config

Usage: dv4cfg full-config [EXTENSION]

Arguments:
  [EXTENSION]  

Options:
  -h, --help  Print help

EXTENSION:可选,用于指定配置文件格式(toml/yaml/json

Execute plan

Usage: dv4cfg exec [OPTIONS] [PLAN_ID]

Arguments:
  [PLAN_ID]  

Options:
  -n, --dry-run  
  -h, --help     Print help