diff --git a/.editorconfig b/.editorconfig index e29c6fe..d3b3e1a 100644 --- a/.editorconfig +++ b/.editorconfig @@ -19,3 +19,19 @@ trim_trailing_whitespace = false # windows shell scripts [*.{cmd,bat,ps1}] end_of_line = crlf + +[*.{sh,tmux}] +indent_style = space +indent_size = 2 + +shell_variant = posix # like -ln=posix +binary_next_line = true # like -bn +switch_case_indent = true # like -ci +space_redirects = true # like -sr +keep_padding = true # like -kp +function_next_line = true # like -fn +never_split = true # like -ns + +[Makefile] +indent_style = tab +indent_size = 8 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5f1ff99 --- /dev/null +++ b/Makefile @@ -0,0 +1,5 @@ +.PHONY: check-scripts +check-scripts: + @# Fail if any of these files have warnings + find . -type f -not -path "./uncommited/*" -a \( -iname "*.sh" -o -iname "*.tmux" \) | xargs -I % sh -c 'shellcheck %' + find . -type f -not -path "./uncommited/*" -a \( -iname "*.sh" -o -iname "*.tmux" \) | xargs -I % sh -c 'shfmt -l -d %' diff --git a/README.md b/README.md index 1c0137f..ff5426d 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,44 @@ set -g @tmux-gruvbox 'dark' # or 'light', 'dark-transparent', 'light-transparent Hit `prefix + I` to fetch the plugin and source it. Your Tmux should be updated with the theme at this point. +## Development + +To run project locally: + +1. clone the repo to desired place + + ```bash + cd $HOME/projects/ + git clone ... + ``` + +1. create symlink in plugin dir to the cloned repo: + + ```bash + # cd to tmux plugin directory + cd ~/.tmux/plugins/ + + # create simlink to cloned repo + ln -sf $HOME/projects/tmux-gruvbox/ tmux-gruvbox + ``` + +1. and in `~/.tmux.conf` set + + ```bash + # add plugin + set -g @plugin 'egel/tmux-gruvbox' + # set desired options... + set -g @tmux-gruvbox 'dark' + ``` + +### Linters & formatters + +To keep the files clean we use few program to help us achieve it: + +1. Editorconfig (make sure your editor have it) +2. Markdown (prettier/prettierd) +3. Shell (shellcheck, shfmt) + ## License GPLv3 - Maciej Sypień diff --git a/gruvbox-tpm.tmux b/gruvbox-tpm.tmux index 4f7693b..99849a9 100755 --- a/gruvbox-tpm.tmux +++ b/gruvbox-tpm.tmux @@ -1,27 +1,30 @@ #!/usr/bin/env bash -CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -THEME_OPTION="@tmux-gruvbox" -DEFAULT_THEME="dark" +SCRIPT_SRC="$(dirname "${BASH_SOURCE[${#BASH_SOURCE[@]} - 1]}")" +readonly SCRIPT_SRC +CURRENT_DIR=$(cd "${SCRIPT_SRC}" >/dev/null 2>&1 && pwd) +readonly CURRENT_DIR +readonly THEME_OPTION="@tmux-gruvbox" +readonly DEFAULT_THEME="dark" get_theme() { - local option="$1" - local default_value="$2" - local option_value - option_value=$(tmux show-option -gqv "$option") - if [ -z "$option_value" ]; then - echo "$default_value" - else - echo "$option_value" - fi + local option="$1" + local default_value="$2" + local option_value + option_value=$(tmux show-option -gqv "$option") + if [ -z "$option_value" ]; then + echo "$default_value" + else + echo "$option_value" + fi } main() { - local theme - theme=$(get_theme "$THEME_OPTION" "$DEFAULT_THEME") - tmux source-file "$CURRENT_DIR/tmux-gruvbox-${theme}.conf" + local theme + theme=$(get_theme "$THEME_OPTION" "$DEFAULT_THEME") + tmux source-file "$CURRENT_DIR/tmux-gruvbox-${theme}.conf" } -main +main "$@" -# vi: ft=bash +# vim: ai et ft=bash