Skip to content

maker2413/yacm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YACM - Yet Another Configuration Manager

yacm is another configuration manager for your systems that aims to be so simplistic it is almost useless. Most of yacm’s functionality can be learned by diving into the help menu’s defined in the application: yacm help. With yacm users can define a profile for each system that the user wants to configure with yacm. Profiles can be created and managed with yacm itself or with a simple text editor.

Installation

There are a couple of ways to currently install yacm.

Download

You can download yacm directly from github and place it in your $PATH with a command similar to:

curl -fLo /usr/local/bin/yacm https://github.com/maker2413/yacm/raw/master/yacm && chmod a+x /usr/local/bin/yacm

Or to download the latest release a command similar to:

curl -fLo /usr/local/bin/yacm https://github.com/maker2413/yacm/releases/latest/download/yacm && chmod a+x /usr/local/bin/yacm

Of course you can alter the file paths in the above commands to match your current setup for $PATH.

Clone

You can of course also clone the repository to your local system and setup a symlink to a directory currently in your $PATH. It could be done with the following:

git clone https://github.com/maker2413/yacm.git ~/.yacm-project
ln -s ~/.yacm-project/yacm ~/bin/yacm

Of course again the above can be altered to match your current setup for $PATH. The pros of installing yacm with this method is you can update yacm by doing a git pull in the repo you cloned down or tag it to a specific version by checking out a tag in that repo.

Usage

To begin using yacm after installation simply type: yacm init. This will create a profile if none are currently present or prompt the user to set a default profile for the current system. After a default profile has been set the system can be bootstrapped by just running: yacm bootstrap.

Any other functionality yacm provides can be learned from its built in help menus:

echo "yacm has built in help menus for all of its features:"
./yacm help

echo -e "\nBootstrapping functionality:"
./yacm bootstrap help

echo -e "\nSystem initialization:"
./yacm init help

echo -e "\nProfile management:"
./yacm profile help

Assuming the user defines idempotent executables the bootstrap can be run over and over to add additional configurations to your system. It is also worth noting that since yacm assumes you are defining a profile for each of your systems you can easily check in all of your system profiles and executables into a repository to have an easy way to redeploy any of your systems. By default profiles and executables will be stored in $HOME/.config/yacm/ so these can be checked into a repository where you store your dotfiles if you do that.