Skip to content
Snippets Groups Projects
Commit 8b015a02 authored by Richard Hartmann's avatar Richard Hartmann
Browse files

Introduce config file and control over what goes into .gitignore/$foo

* configuration is in $XDG_CONFIG_HOME/vcsh/config
* $VCSH_GITIGNORE can be set to 'exact' or 'recursive'
parent 94282312
No related branches found
No related tags found
No related merge requests found
......@@ -8,8 +8,11 @@
[ -n "$VCSH_DEBUG" ] && set -vx
[ -z "$XDG_CONFIG_HOME" ] && XDG_CONFIG_HOME="$HOME/.config"
[ -r "$XDG_CONFIG_HOME/vcsh/config" ] && . "$XDG_CONFIG_HOME/vcsh/config"
[ -n "$VCSH_DEBUG" ] && set -vx
[ -z "$VCSH_REPO_D" ] && VCSH_REPO_D="$XDG_CONFIG_HOME/vcsh/repo.d"
[ -z "$VCSH_BASE" ] && VCSH_BASE="$HOME"
[ -z "$VCSH_GITIGNORE" ] && VCSH_GITIGNORE='exact'
SELF=$(basename $0)
......@@ -179,7 +182,9 @@ write_gitignore() {
echo '*' > "$tempfile" || fatal "could not write to '$tempfile'" 57
for gitignore in $gitignores; do
echo "$gitignore" | sed 's/^/!/' >> "$tempfile" || fatal "could not write to '$tempfile'" 57
[ -d "$gitignore" ] && { echo "$gitignore/*" | sed 's/^/!/' >> "$tempfile" || fatal "could not write to '$tempfile'" 57; }
if [ x$VCSH_GITIGNORE = x'recursive' ] && [ -d "$gitignore" ]; then
{ echo "$gitignore/*" | sed 's/^/!/' >> "$tempfile" || fatal "could not write to '$tempfile'" 57; }
fi
done
if diff -N "$tempfile" "$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME" > /dev/null; then
rm -f "$tempfile" || error "could not delete '$tempfile'"
......@@ -194,6 +199,10 @@ write_gitignore() {
fatal "could not move '$tempfile' to '$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME'" 53
}
if [ ! x$VCSH_GITIGNORE = x'exact' ] && [ ! x$VCSH_GITIGNORE = x'recursive' ]; then
fatal "\$VCSH_GITIGNORE must be either 'exact' or 'recursive'" 1
fi
if [ "$1" = 'clone' ]; then
[ -z $2 ] && fatal "$1: please specify a remote" 1
export VCSH_COMMAND="$1"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment