GithubHelp home page GithubHelp logo

dimspith / confie Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 0.0 1.17 MB

⚙️ A simple and versatile configuration manager written in Nim

License: MIT License

Makefile 1.77% Nim 98.23%
dotfile dotfiles configuration stow linux dotfile-manager dotfile-management configuration-management

confie's Introduction

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.

confie's People

Contributors

dimspith avatar phantomion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.