Confie

⚙ A simple and versatile configuration manager written in Nim

Pure Nim score 15/100 · last commit 2022-01-08 · 2 stars · tests present · no docs generated

Summary

Latest Version Unknown
License Unknown
CI Status Failing
Stars 2
Forks 0
Open Issues 0
Last Commit 2022-01-08
Downloads 0
Last Indexed 2026-09-07 06:08

Installation

nimble install Confie
choosenim install Confie
git clone https://gitlab.com/langhops/confie

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
Confie - - - - - - - - -

Source

Repository https://gitlab.com/langhops/confie
Homepage https://gitlab.com/langhops/confie
Registry Source gitlab

README

Confie - configuration manager

The fast and portable configuration manager for GNU/Linux systems.

WARNING: Still highly experimental so use with caution!

Confie is a portable and extensible configuration manager for the everyday user to simplify the process of maintaining a system's configuration files and packages while transferring them with ease across different installations.

Features

  • Easy to use
  • Static binary with no dependencies
  • Easily configurable
  • Supports many package managers

Usage

Confie is made to be included as a binary in repositories containing dotfiles for easy redistribution. It checks the current directory for a valid configuration file and supports the following:

Installing packages/dotfiles

Install packages and/or dotfiles as defined in the config

# Install all packages
$ confie install packages

# Install all dotfiles
$ confie install dotfiles

# Install everything
$ confie install

Printing configuration

Print the config in a user-friendly format

$ confie print-config

Fetching changes

Fetch all dotfiles from the system and overwrite local changes

$ confie fetch

Configuring

Configuration should be located in a file named confie.cfg which is in ini format.

A sample config goes as follows:

packages="""
emacs
nvim
i3
alacritty
"""

[nvim]
local_path = "nvim"
install_path = "~/.config/nvim"

[emacs]
local_path = "emacs"
install_path = "~/.emacs.d"

The packages key contains the list of packages to be installed using the system's package manager.

NOTE: packages should always be surrounded with three double quotes as seen above

Sections such as [nvim] are named after the package they represent and contain 2 keys: * local_path which is the path to the directory containing the configuration * install_path which is the path to install the files defined in local_path

Installation

To build from source, make sure you have Nim and Make installed and run make in the project folder. An executable will appear which you can copy to your path or your repository.