Crates.io | ipa |
lib.rs | ipa |
version | 0.3.0 |
source | src |
created_at | 2021-01-01 23:36:06.040408 |
updated_at | 2021-01-01 23:36:06.040408 |
description | Another dotfiles manager that can install and configure your packages |
homepage | https://github.com/msAlcantara/ipa |
repository | |
max_upload_size | |
id | 330344 |
size | 45,448 |
Ipa is another dotfiles manager, that can be used to install and configure (only to Arch Linux installation for now) programs using a configuration file.
The principal motivation with this project is to learn about Rust development and create a tool that can be used.
You can install ipa using prebuilt binaries from GitHub release page. Make sure that glibc is installed
Ipa use a yaml configuration file that you can describe all packages and config files that you want to install. The configuration file is divided between groups, so you can create groups of configs and setup them individually latter.
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 will search for file called dotfiles.yml
on the root of directory, so you can just call ipa
, but, you can use the flag -f
too specify a custom file name.
You can configure ipa to install packages and create symbolic links of your config files.
The link
is responsible for creating symbolically links. If necessary, items can be configured to be relinked, overwriting the current files. Environment variables are automatically expanded if used. If the directory of destination file does not exists, ipa will create automatically, if you want disable this behaviour you can disable with create: false
Parameter | Description |
---|---|
src | Source of config file to create a symbolically link. |
dst | Destination config file to be created. |
relink | Force overwriting file if allready exists (Default false). |
create | Create sub directory in dst path if not exists (Default true). |
some_group:
link:
- src: ~/.dotfiles/config/ # Will link all files into ~/.config
dst: ~/.config
relink: true
The package
is responsible for installing the programs.
Parameter | Description |
---|---|
name | Name of the package. |
some_group:
package:
- name: neovim
The shell
is responsible to execute bash scripts
Parameter | Description |
---|---|
command | Bash command to execute. |
some_group:
shell:
- command: nvim +PlugInstall +qall
Install all sessions of config file.
$ ipa -f config.yml
Install only packages/links that have group
dev
$ ipa -f config.yml --only dev
Install only packages/links that dont't have group
dev
$ ipa -f config.yml --except dev