geekymoose / coco-settings-manager

[CLOSED] A lightweight settings manager for Linux. Generates symlinks according to a configuration file

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Coco Settings Manager

Disclaimer: don't use this. I did this during my studies to sync my dotfiles. Turns out there are better ways to do this, such as using stow or git tricks (see link).

Description

Coco settings manager generates symlinks according to your configuration. The script prints its execution status so that you know if something went wrong (e.g., wrong path, missing file, missing file).

How I use this script

I use this script it to synchronize my settings across several computers. I place all my settings in a git folder accessible from anywhere. Just clone it on the new computer, then, I start this script with the configuration file I need (the gen.conf file). Note that, this gen.conf file itself is in my configuration folder.

The first time, I run ./settings-gen.sh -c /path/to/config/myGenConfig.gen.conf (then, I install this manager for next uses)

Usage

Installation is not required. You can still start the scripts with -c option and a config file.

# Getting started without installation
`./settings-gen.sh -c /path/to/config/myGenConfig.gen.conf`
  • Run install.sh
  • This creates the config directory ~/.config/coco-settings-manager
  • This also places the scripts in your bin directory
    • settings-check.sh copied in ~/.local/bin/coco-settings-check
    • settings-gen.sh copied in ~/.local/bin/coco-settings-gen
  • Note the 'coco' prefix added for easy tab completion.
  • Don't forget to have ~/.local/bin in your path.

Scripts

  • settings-gen.sh
    Generate the configuration listed in gen files (.gen.conf).
    Without options, executes all valid gen files placed in ~/.config/coco-settings-manager.

    Use -h option to display help

  • settings-check.sh
    Check installation status of packages listed in configuration files (.check.conf).
    Without options, executes all valid check files placed in ~/.config/coco-settings-manager.

    Use -h option to display help

Configuration files

File setting-gen

Used by settings-gen.sh script.

Syntax

  • # This is a comment
  • crea_ln src dest -> create a symlink from src to dest.
  • crea_rep dest -> Create the 'dest' repertory (can be ~/a/b/c).
  • crea_rep_ln src dest -> Create a symlink of each file inside src and place in dest folder.
  • crea_sh_ln src dest -> Like crea_rep_ln but add a prefix before the link. (I use this for scripts for easy tab auto completion).
  • print_title title -> Print the title during execution.
  • print_warning msg -> Print a warning (I use this for manual action to do after the execution).
  • exec_cmd command -> Arbitrary execute the given command. (See example)

Example (Gen config file)

File myGenConfig.gen.conf

# Terminal (terminator)
show_title "Terminals (Terminator, urxvt)"
crea_rep                                                            "~/.config/terminator"
crea_ln "~/settings-common/terminator/config"                       "~/.config/terminator/config"

# Terminal (urxvt)
crea_rep                                                            "~/.config/urxvt"
crea_ln "~/settings-common/urxvt/config"                            "~/.config/urxvt/config"

# Vim / NeoVim
show_title "NeoVim"
crea_rep                                                            "~/.config/nvim/autoload"
crea_rep                                                            "~/.config/nvim/components"
crea_rep_ln "~/settings-common/neovim/components"                   "~/.config/nvim/components"
crea_ln     "~/settings-common/neovim/autoload/plug.vim"            "~/.config/nvim/autoload/plug.vim"
crea_ln     "~/settings-common/neovim/init.vim"                     "~/.config/nvim/init.vim"

# Scripts
show_title "Scripts"
crea_rep                                                            "~/.local/bin"
crea_sh_ln "~/settings-common/scripts"                             "~/.local/bin"

# Arbitrary command (execute xrdb with parameter ~.Xresources)
execute xrdb "~/.Xresources"

# Other
show_title "Other"
show_warning "Install fonts from 'https://github.com/powerline/fonts'"
show_warning "~/.local/bin must be added in the path"

File setting-check

Used by settings-check.sh script.

Check Syntax

  • # Title -> Print the title.
  • pkgX -> Check whether pkgX is installed and print result.

There is no way to comment.

Example (check config file)

File myCheckConfig.check.conf

# WORKSPACE
awesome
i3

# UTILITIES
urxvt
terminator

# PROGRAMMING
gcc
g++
gdb
cmake
java
javac
ocaml
lua
vim
nvim
emacs

# SECURITY
nslookup
strace
hexdump
objdump
radare2
netstat
netcat
keepassx2

# INTERNET
firefox
wget

# MULTIMEDIA
liferea
calibre

# DOCUMENTS
pdflatex
atril

Wait! Who is Coco

Coco is a Rabbit! He's nice and likes carrot (because he's not a stereotype).

About

[CLOSED] A lightweight settings manager for Linux. Generates symlinks according to a configuration file

License:MIT License


Languages

Language:Shell 100.0%