Riyyi
16947b93e2
|
3 years ago | |
---|---|---|
cmake | 3 years ago | |
doc | 3 years ago | |
src | 3 years ago | |
test | 3 years ago | |
vendor | 3 years ago | |
.clang-format | 3 years ago | |
.gitignore | 3 years ago | |
.gitmodules | 3 years ago | |
CMakeLists.txt | 3 years ago | |
LICENSE | 3 years ago | |
README.org | 3 years ago | |
compile_commands.json | 3 years ago |
README.org
Manafiles
Config file and package tracking utility.
- Manage dotfiles and system config files.
- Selectively comment and uncomment depending on machine configuration.
- Store a list of all installed packages.
- Install packages from a stored list.
Installation
This package is available through the AUR, linked here manafiles-git.
Building
Build requirements
gcc-libs
- (make)
cmake
- (make)
git
- (make)
gzip
- (optional)
grep
- (optional)
pacman-contrib
- (optional)
apt-cache
,apt-mark
,dpkg-query
The optional requirements are for the package tracking functionality.
Build instructions
$ mkdir build
$ cd build
$ cmake ..
$ make
Build installation
$ sudo make install
Usage
Selectively comment and uncomment
Config files can be pushed from the working directory to the system like so:
$ manafiles -Fs
When pushing files to the system, manafiles recognizes special blocks and comments or uncomments them depending on the machine's configuration. Such a block looks like this:
# >>> distro=arch hostname=arch-desktop user=anon
export PATH="$PATH:$HOME/.local/bin"
# <<<
This block uses all of the supported configurations, distro
, hostname
and
user
. These can be used in any combination and order.
If all of the given configurations match, manafiles will make sure that the contents of the block are uncommented. If any of them do not match, then manafiles will make sure that the contents of the block are commented.