Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/norfairking/super-user-stone

The configurations deployer that turns any computer into your computer. (deprecated in favor of super-user-spark.)
https://github.com/norfairking/super-user-stone

Last synced: 2 months ago
JSON representation

The configurations deployer that turns any computer into your computer. (deprecated in favor of super-user-spark.)

Awesome Lists containing this project

README

        

* Super User Stone
The configurations deployer that turns any computer into your computer.
More info, and a tutorial at [[http://blog.cs-syd.eu/super-user-stone/][CS Syd.]]
** The basic idea
Have you ever been frustrated that you had to put all your configuration files in place again after reinstalling your operating system?
If you forgot to even make back-ups of your configuration files you even had to remake al those configuration files.
Well, that was the last time you face such a problem, thanks to the Super User Stone.

SUS manages the deployment of your configuration files (dotfiles) and aids you in speeding up the process of reinstalling your linux operating system.

SUS also takes care of the problems you run into when using different config files on different systems, but the systems share some config files too.
** Dependencies
- Python 3
- filecmp
- shutil
- configparser
** Usage
*** Suggestions
There are two suggested ways to use SUS.
- Along with a synchronisation method
- Along with a backup of your config files.
**** The synchronisation way
The user keeps a folder of all its config files (along with the SUS config files) in a synchronised folder (like Git repository or a Dropbox folder).
When SUS is deployed, it makes symbolic links from that folder to the correct places.
This way, if any config file is changed, the changes are synchronised across systems.
SUS supports shared config files and host-specific config files so that config files don't even need to be duplicated.
**** The backup way
The user keeps a folder of all its config files (along with the SUS config files) in some safe place.
When SUS is deployed with the 'copy' option, the config files get copied into the correct folders.
When changing a config file, the user must make sure to edit the original files for the change to persist.
*** Deploying SUS
1. Clone the repository
#+BEGIN_EXAMPLE
git clone [email protected]:NorfairKing/super-user-stone.git
#+END_EXAMPLE
There is no need to install SUS, you can just use it directly.
2. Configure your depot.
Have a look at the configurations section of this readme.
3. Run the deploy script
#+BEGIN_EXAMPLE
super-user-stone/deploy.sh -d
#+END_EXAMPLE
Run the deploy script with the --help flag to see what other options you can use.
** Configuration
SUS will need some files to know what to do.
These files should be stored in the same directory.
We will call this directory the config *depot*, but you can name it what you like.
It should look like this:
#+BEGIN_EXAMPLE
- depot
|-shared/
|-hostname1/
|-hostname2/
|-configurations.sus
#+END_EXAMPLE
*** Configurations
For config files, SUS will need the following file:
#+BEGIN_EXAMPLE
configurations.sus
#+END_EXAMPLE
This file is a typical python configuration file.
Every section should be a path. e.g. '~', '/home/user/', ...
The option in section should look like this:
#+BEGIN_EXAMPLE
source_file_name: destination_file_name
#+END_EXAMPLE
Here, 'source_file_name' should be the name of the file in the 'shared' (or 'hostname') directory in the depot.
'destination_file_name' should be the name of the file when it is deployed.
Example:
#+BEGIN_EXAMPLE
[~]
bash_aliases: .bash_aliases
bashrc: .bashrc
#+END_EXAMPLE
** FAQ
No questions have been asked yet.