All Projects → idursun → vacuum

idursun / vacuum

Licence: MIT license
Vacuum is a system-wide configuration file collector

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to vacuum

neovim-config
Modern NeoVim config for IDE-like development
Stars: ✭ 89 (+256%)
Mutual labels:  configuration-files
emacs.d
My Emacs config. ⚙️ (buuuuut I don't use Emacs anymore)
Stars: ✭ 15 (-40%)
Mutual labels:  configuration-files
awesome-pro
Awesome WM 4.x themes configs
Stars: ✭ 91 (+264%)
Mutual labels:  configuration-files
dotfiles
My dotfiles 🥑
Stars: ✭ 17 (-32%)
Mutual labels:  configuration-files
config-parser
A slim, fully managed C# library for reading/writing .ini, .conf, .cfg etc configuration files.
Stars: ✭ 67 (+168%)
Mutual labels:  configuration-files
jsonargparse
Implement minimal boilerplate CLIs derived from type hints and parse from command line, config files and environment variables
Stars: ✭ 168 (+572%)
Mutual labels:  configuration-files
parse it
A python library for parsing multiple types of config files, envvars & command line arguments that takes the headache out of setting app configurations.
Stars: ✭ 86 (+244%)
Mutual labels:  configuration-files
dotfiles
📦 Configuration files for my Arch/KDE/i3-gaps system
Stars: ✭ 41 (+64%)
Mutual labels:  configuration-files
nanorc
🔧 🎨 Some syntax highlighting files for the GNU/Nano editor 📝 https://nano-editor.org/
Stars: ✭ 20 (-20%)
Mutual labels:  configuration-files
.config
⚙️ Bootstrappable user environment for macOS & Ubuntu
Stars: ✭ 31 (+24%)
Mutual labels:  configuration-files
dotfiles
Custom dotfile configurations and settings
Stars: ✭ 12 (-52%)
Mutual labels:  configuration-files
goconf
Configuration loader in Go
Stars: ✭ 23 (-8%)
Mutual labels:  configuration-files
DazzleConf
Incredible configuration library
Stars: ✭ 34 (+36%)
Mutual labels:  configuration-files
rubric
Linter Config Initializer for Python
Stars: ✭ 21 (-16%)
Mutual labels:  configuration-files
config-cpp
C++ Configuration management library inspired by the Viper package for golang.
Stars: ✭ 21 (-16%)
Mutual labels:  configuration-files
dotman
dotman is a simple, elegant & easy to use dotfiles manager 🖖🏽
Stars: ✭ 85 (+240%)
Mutual labels:  configuration-files
Python Decouple
Strict separation of config from code.
Stars: ✭ 1,982 (+7828%)
Mutual labels:  configuration-files
authelia
Instructions and configuration files to deploy Authelia in Unraid OS using Docker + FreeIPA LDAP.
Stars: ✭ 116 (+364%)
Mutual labels:  configuration-files
zsh-launchpad
🚀 Simple, educational dotfiles template to get started with Zsh and learn about its features
Stars: ✭ 141 (+464%)
Mutual labels:  configuration-files
nvim-config
My neovim config
Stars: ✭ 63 (+152%)
Mutual labels:  configuration-files

vacuum

Build

Vacuum is a system-wide configuration file collector.

This repo contains highly experimental code before settling on a final design and far from being complete. Any feedback is welcome.

How it works?

Vacuum processes .vacuum files.

A vacuum file, in essence, is a mini DSL that describes where to look at to find application specific configuration files.

Vacuum files are written per application. An example vacuum file for WebStorm is as follows:

app "WebStorm" {
    home {
        search ".WebStorm*" {
            cd "config" {
                cd "keymaps" {
                    files "*.xml"
                }
                cd "options" {
                    file "editor.xml"
                }
            }
        }
    }
}

By processing this file, vacuum will:

  • Create a WebStorm folder to store found configuration files
  • Change to the home folder
  • Search for directories matching the pattern .WebStorm and for each found directory:
    • Change directory to config/keymaps
      • Copy all files matching the pattern *.xml
    • Change directory to config/options
      • Copy file with the name editor.xml

You can have a look at the currently available .vacuum files here.

An example repository with collected configs is at here

How to run?

  • Clone the repository
  • Run cargo run -- store ./myconfigs to vacuum configurations into ./myconfigs
  • Run cargo run -- restore ./myconfig to restore your configurations from ./myconfig

asciicast

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].