#config-file #install #configure #packages #link #dst #src

bin+lib ipa

另一个可以安装和配置你的软件包的dotfiles管理器

1 个不稳定版本

0.3.0 2021年1月1日

#605配置

自定义许可

29KB
777 代码行

ipa

GitHub Workflow Status License Lastest Version

Ipa是另一个dotfiles管理器,可以用来通过配置文件安装和配置程序(目前只支持Arch Linux安装)。

动机

这个项目的主要动机是学习Rust开发并创建一个可以使用的工具。

安装

您可以使用来自GitHub发布页面的预构建二进制文件来安装ipa。请确保已安装glibc

配置

Ipa使用一个yaml配置文件,您可以在其中描述要安装的所有软件包和配置文件。配置文件被分组,因此您可以创建配置组并在以后单独设置它们。

示例

gui: # group gui
  - link:
      src: ~/.dotfiles/config/i3blocks/config
      dst: ~/.config/i3blocks/config

  - package:
      name: i3
    link:
      src: ~/.dotfiles/config/i3/config
      dst: ~/.config/i3/config

  - shell:
      command: git clone https://github.com/vivien/i3blocks-contrib ~/.config/i3blocks/

dev: # group dev
  - link:
      src: ~/.dotfiles/config/git/gitconfig
      dst: ~/.gitconfig
      relink: true

  - package:
      name: neovim
    link:
      src: ~/.dotfiles/config/nvim
      dst: ~/.config/nvim/
      relink: true

    - package:
        name: tmux
      link:
          src: ~/.dotfiles/tmux/tmux.conf
          dst: ~/.tmux.conf
      shell:
          command: git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Ipa将在目录根目录中搜索名为dotfiles.yml的文件,因此您可以只需调用ipa,但您也可以使用-f标志来指定自定义文件名。

选项

您可以将ipa配置为安装软件包并创建配置文件的符号链接。

link负责创建符号链接。如果需要,可以配置项目以重新链接,覆盖现有文件。如果使用环境变量,则会自动展开。如果目标文件的目录不存在,ipa将自动创建,如果要禁用此行为,您可以使用create: false

格式

参数 描述
src 创建符号链接的配置文件的源。
dst 要创建的目标配置文件。
relink 如果已存在,则强制覆盖文件(默认为false)。
create 如果不存在,则在dst路径中创建子目录(默认为true)。

示例

some_group:
    link:
        - src: ~/.dotfiles/config/ # Will link all files into ~/.config
          dst: ~/.config
          relink: true

软件包

package负责安装程序。

格式

参数 描述
名称 包名称。

示例

some_group:
    package:
        - name: neovim

Shell

shell 负责执行 bash 脚本。

格式

参数 描述
命令 执行用的 Bash 命令。

示例

some_group:
    shell:
        - command: nvim +PlugInstall +qall

用法

安装配置文件的所有会话。

$ ipa -f config.yml

只安装具有 group dev 的包/链接。

$ ipa -f config.yml --only dev

只安装没有 group dev 的包/链接。

$ ipa -f config.yml --except dev

许可协议

MIT

依赖项

~3–11MB
~110K SLoC