Easy-extendable and dependencyless configuration management for Linux, BSD and OS X. It's written in portable shell script, and works in bash, dash, ksh, mksh and zsh.
- Easy installable, just download the archive or clone this repository.
- No dependencies, even the most minimal systems can run it.
- Portable, POSIX-compliance makes it work on any operating system.
- Well documented, from user to developer
- Logs everything, so you can easily trace where the modification to the system was made.
enSHure is designed to be an add-on tool to your existing bash scripts. Let's say you want to enable autologin in GNOME3, and you add this to your homemade setup script:
if ! grep '^AutomaticLoginEnable' /etc/gdm3/daemon.conf > /dev/null; then
sed -i '/\[daemon\]/a AutomaticLoginEnable=true\nAutomaticLogin=root' \
/etc/gdm3/daemon.conf
fiThat's something pretty unreadable and you'd probably need to read some man pages and run some tests before you'd write something like this. If you'd use enSHure it would look something like this:
enshure inifile "/etc/gdm3/daemon.conf" present \
section "daemon" \
option "AutomaticLoginEnable" \
value "true"
enshure inifile "/etc/gdm3/daemon.conf" present \
section "daemon" \
option "AutomaticLogin" \
value "root"Although it's more verbose, it also increases the readability of your script. It's much easier and faster to write this code. If you ever need to change the file again it's a lot easier to write some enSHure lines than think up a new sed/awk expression.
This project can be installed by just cloning the git repositiory, and including the location in the PATH variable.
Every contribution is much appreciated from spelling errors, and making documentation more readable to huge pull requests.
Some of the things I'd like help with:
- Packaging: deb, rpm, pacman, ...
- Testing: enSHure is mainly tested on debian-based machines. Testing and bugfixing on another OS (RedHat, BSD, OS X, ...) would be much appreciated.
Licencesed under the GPLv3 or newer.
I would like to thank Joe Topjian (@jtopjian) for creating waffles. It's by contributing to his project that I was able to finally understand how I would design enSHure.
Another example has been the Gentoo project. Their ebuilds served as models for the modules in enSHure.