From 3e918875bebfd2f8e4712a96a2f7d9c88f89a238 Mon Sep 17 00:00:00 2001 From: Salt Date: Sat, 6 Mar 2021 05:41:53 -0600 Subject: [PATCH] Pushing up more project docs --- README.md | 26 ++++++++++++++++++++++++-- proj | 8 ++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a3666cb..1b79cf1 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,29 @@ # proj +## Usage + +Invoke the script and pass the name of the project as its only non-flag argument: + +```bash +proj learncpp +``` + +If the project exists in your project directory, it will spawn a subshell in that directory. Advanced usage and hooks are detailed below, but you can use it as a glorified `cd` if that's all you need. + +## Flags + +flag|description|args +---|---|--- +-c|Path to a config file to load in place of the default (`~/.config/proj.conf`)|Path to config file +-h|Print basic help text| + ## Configuration -value|type|description +value|description|default ---|---|--- -project\_dir|string|Path to where projects should be stored. Defaults to ~/Projects +git\_auto\_init|If not set to `0`, automatically initialize a git repository on project creation|`0` +git\_auto\_init\_always|If not set to `0`, automatically initialize a git repository any time you enter a project and `./.git` does not exist|`0` +git\_auto\_init\_gitignore|A colon-separated ($PATH-style) list of items to include in the initial `.gitignore`|`*.swp` +hook\_pre\_create|Path to a script invoked (not sourced) before a project is created. Script will be executed relative to `project_dir`|Empty string +hook\_pre\_spawn|Path to a script invoked (not sourced) before a shell is spawned in the project directory. Script will be executed relative to the project's root directory|Empty string +project\_dir|Path to where projects should be stored.|`$HOME/Projects` diff --git a/proj b/proj index 98cded7..052144d 100755 --- a/proj +++ b/proj @@ -12,8 +12,12 @@ set -e declare -r _name="$(basename -- "$0")" # Options declare -a _config=( - [foo]="bar" - [baz]="bop" + [git_auto_init]="0" + [git_auto_init_always]="0" + [git_auto_init_gitignore]="*.swp" + [hook_pre_create]="" + [hook_pre_spawn]="" + [project_dir]="$HOME/Projects" ) declare _optconfigfile="${XDG_CONFIG_HOME:-$HOME/.config}/${_name}.conf" declare -i _opthelp