Config file and package tracking utility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Riyyi 42b34aad61 Manager: Create package list file if non-existent 3 years ago
cmake CMake: Add uninstall target 3 years ago
doc CMake: Rename project stowage => manafiles 3 years ago
src Manager: Create package list file if non-existent 3 years ago
test Test: Move unit tests into separate directory 3 years ago
.clang-format Initial commit 3 years ago
.gitignore Initial commit 3 years ago
CMakeLists.txt CMake: Rename project stowage => manafiles 3 years ago
LICENSE Project: Release under MIT license 3 years ago
README.org Meta: Fix typo in README.org 3 years ago
compile_commands.json Initial commit 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.

Build instructions

$ mkdir build
$ cd build
$ cmake ..
$ make

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.

COMMENT System config files

COMMENT Exclude paths