/dot

A simple bash script for managing my dotfiles with stow

Primary LanguageShellGNU General Public License v3.0GPL-3.0

dot

A simple bash script for managing my dotfiles with stow

Dependencies

stow

Usage

Commands

Listing packages

  • dot l | list List all available packages for installing into your environment if no packages are given
  • dot l | list <package1> <package2> <...> Lists contained files of all given packages
  • dot i | install [-a|--all] [-f | --force] <package1> <package2> <...> Install provided packages from your dotfiles repository into $HOME. When given -aor --all installs all available packages from $HOME (except packages which start with _, see: Device specific packages). When given -f | --force force install of Device specific packages
  • dot r | remove [-a|--all] [-f | --force] <package1> <package2> <...> Remove provided packages from your $HOMErepository (Note: your config files in your dotfiles repository won't be touched. It's a fancy alias for un-stowing). When given -aor --all remove all available packages from $HOME (except packages which start with _, see: Device specific packages). When given -f | --force force remove of Device specific packages
  • dot c | create <package_name> Create a package with name <package_name> if it doesn't yet exist (Will not overwrite existing packages) (See Device specific packages for special use cases)
  • dot a | add <package_name> <file1> <file2> <...> Add given files to package <package_name> (This is an alias for moving the file incl. respective folder structure relative to $HOME into package <package_name> and reinstalling the whole package in order to create corresponding symlinks with stow)

Options

  • dot -h |--help Show help Usage: _standalone_²
  • dot -d | --dry-run Dry-Run¹ Usage: All commands
  • dot -f | --force When given -f | --force force install/remove of Device specific packages Usage: install | remove
  • dot -v | --verbose Logs verbosely (If something doesn't work out as intended use it with every command to get more information about what went wrong

Device specific packages

Packages starting with a leading _ are device specific packages. In some cases, you want to install all your loved configs and packages at once, but there may be some issues, which are hardware/device dependent. For this use-case you can create packages with leading _ which you can install/uninstall manually using the -f or --force flags.

TODO

  • Add AUR package and setup procedure (atm included in install)
  • Add check for dependencies at start of script invocation
  • ¹ Improve dry-run feature (as this is currently for development only and may not work with every command)
  • ² Add command-specific help