Config file and package tracking utility
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
Riyyi 644255200e Meta+CMake: Convert JSON library from git submodule to system package hace 3 años
cmake CMake: version 3.16 doesn't support the rm command hace 3 años
doc CMake+Doc: Add configuration file example hace 3 años
src Meta+CMake: Convert JSON library from git submodule to system package hace 3 años
test Manager+Test: Move exclude paths and system directories to config hace 3 años
.clang-format Initial commit hace 4 años
.gitignore Initial commit hace 4 años
CMakeLists.txt Meta+CMake: Convert JSON library from git submodule to system package hace 3 años
LICENSE Project: Release under MIT license hace 4 años
README.org Meta+CMake: Convert JSON library from git submodule to system package hace 3 años
compile_commands.json Initial commit hace 4 años

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
  • (make) nlohmann-json arch, debian, ubuntu
  • (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.

COMMENT System config files

COMMENT Exclude paths