Simple bash script for install dotfiles
This repository has been archived on 2024-09-06. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
Find a file
2019-11-10 02:48:03 +01:00
src Fist commit 2019-11-10 02:01:43 +01:00
README.md Add information about installation 2019-11-10 02:48:03 +01:00

dotinstall - manage dotfiles

dotinstall is another little script made for install or uninstall dotfiles by creating symbolic link. You need to provide a boostrap script for it.

Installation

Just put the dotinstall.sh script in a folder accessible via the $PATH command. I choose to put it in ~/.local/bin/.

How to use

dotinstall bootstrap

The script can use git to retrieve a repository :

dotinstall https://git.example.com/user/repo.git

You can uninstall the dotfiles by adding the uninstall keyword before the bootstrap file :

dotinstall uninstall bootstrap

Boostrap file syntax

bootstrap is a simple bash script sourced by dotinstall. The bootstrap file contains instructions and can call functions and use variables from dotinstall:

functions

bin_check

This function check if binary file is avaible in the PATH.

  • input : list of executable separated by spaces"
  • return : no value, but exit the entire script if a executable is not found with exit code 128
bin_check "ls mv git"

conf_process_dirs

Process a directory that contains others directories an symblink them to the destination folder :

  • input :
    • $1 : source directory
    • $2 : destination directory
  • return : no value, exit the funtion if there is an error on path
conf_process_dirs "${repository}/config" "${HOME}/.config"

conf_process_files

Process a directory than contains files and symblink them to the destination folder :

  • input :
    • $1 : source directory
    • $2 : destination directory
  • return : no value, exit the funtion if there is an error on path
conf_process_dirs "${repository}/zshrc" "${HOME}"

bin_install

Symblink an executable file to the ~/.local/bin folder.

  • input :
    • $1 : source file
  • return : no value, exit the function if the source file not exist or is not executable.
bin_install "bin/check_mails.sh

service_install

Install a systemd service as user, can be useful for timers for example :

  • input :
    • $1 : source file
    • $2 : 1 if service must be activated
  • return : no value, but exit the function if source file is not found or the service can't be activated
service_install "services/myservice.service" 1

Avaible variables

  • $repository : the root folder of the repository
  • OVERWRITE_DIRECTORY : if 1, the script will erase a directory and replace it with a symblink if needed. For example if ~/.vim/ exist, but your boostrap file need to create a symblink from ~/.config/dotrepo/conf/vim to ~/.vim, it will be erased fist. If 0, an error message will be displayed.
  • OVERWRITE_FILE : do the same with file

Licence

This softeware is licenced under the GNU-GPL 3 licence, you can found a copy of the licence here.