Skip to main content
Sign in
Snippets Groups Projects
Commit f0d6c7a5 authored by Richard Hartmann's avatar Richard Hartmann
Browse files

Use $VCSH_BASE instead of $HOME

parent 32150700
No related branches found
No related tags found
No related merge requests found
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
[ -n "$VCSH_DEBUG" ] && set -vx [ -n "$VCSH_DEBUG" ] && set -vx
[ -z "$XDG_CONFIG_HOME" ] && XDG_CONFIG_HOME="$HOME/.config" [ -z "$XDG_CONFIG_HOME" ] && XDG_CONFIG_HOME="$HOME/.config"
[ -z "$VCSH_BASE" ] && VCSH_BASE="$XDG_CONFIG_HOME/vcsh/repo.d" [ -z "$VCSH_REPO_D" ] && VCSH_REPO_D="$XDG_CONFIG_HOME/vcsh/repo.d"
[ -z "$VCSH_BASE" ] && VCSH_BASE="$HOME"
SELF=$(basename $0) SELF=$(basename $0)
...@@ -76,7 +77,7 @@ clone() { ...@@ -76,7 +77,7 @@ clone() {
} }
delete() { delete() {
cd "$HOME" || fatal "could not enter '$HOME'" 11 cd "$VCSH_BASE" || fatal "could not enter '$VCSH_BASE'" 11
use use
info "This operation WILL DETROY DATA!" info "This operation WILL DETROY DATA!"
files=$(git ls-files) files=$(git ls-files)
...@@ -105,7 +106,7 @@ git_dir_exists() { ...@@ -105,7 +106,7 @@ git_dir_exists() {
init() { init() {
[ ! -e "$GIT_DIR" ] || fatal "'$GIT_DIR' exists" 10 [ ! -e "$GIT_DIR" ] || fatal "'$GIT_DIR' exists" 10
export GIT_WORK_TREE="$HOME" export GIT_WORK_TREE="$VCSH_BASE"
mkdir -p "$GIT_WORK_TREE" || fatal "could not create '$GIT_WORK_TREE'" 50 mkdir -p "$GIT_WORK_TREE" || fatal "could not create '$GIT_WORK_TREE'" 50
cd "$GIT_WORK_TREE" || fatal "could not enter '$GIT_WORK_TREE'" 11 cd "$GIT_WORK_TREE" || fatal "could not enter '$GIT_WORK_TREE'" 11
git init git init
...@@ -113,13 +114,13 @@ init() { ...@@ -113,13 +114,13 @@ init() {
} }
list() { list() {
for i in "$VCSH_BASE"/*.git; do for i in "$VCSH_REPO_D"/*.git; do
echo $(basename "$i" .git) echo $(basename "$i" .git)
done done
} }
get_files() { get_files() {
export GIT_DIR="$VCSH_BASE/$VCSH_REPO_NAME.git" export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
git ls-files git ls-files
} }
...@@ -151,7 +152,7 @@ setup() { ...@@ -151,7 +152,7 @@ setup() {
git config core.worktree "$GIT_WORK_TREE" git config core.worktree "$GIT_WORK_TREE"
git config core.excludesfile ".gitignore.d/$VCSH_REPO_NAME" git config core.excludesfile ".gitignore.d/$VCSH_REPO_NAME"
git config vcsh.vcsh 'true' git config vcsh.vcsh 'true'
[ -e "$HOME/.gitignore.d/$VCSH_REPO_NAME" ] && git add -f "$HOME/.gitignore.d/$VCSH_REPO_NAME" [ -e "$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME" ] && git add -f "$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME"
} }
use() { use() {
...@@ -162,7 +163,7 @@ use() { ...@@ -162,7 +163,7 @@ use() {
write_gitignore() { write_gitignore() {
use use
cd "$HOME" || fatal "could not enter '$HOME'" 11 cd "$VCSH_BASE" || fatal "could not enter '$VCSH_BASE'" 11
gitignores=$(for file in $(git ls-files); do gitignores=$(for file in $(git ls-files); do
while true; do while true; do
echo $file; new="${file%/*}" echo $file; new="${file%/*}"
...@@ -176,17 +177,17 @@ write_gitignore() { ...@@ -176,17 +177,17 @@ write_gitignore() {
echo "$gitignore" | sed 's/^/!/' >> "$tempfile" || fatal "could not write to '$tempfile'" 57 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; } [ -d "$gitignore" ] && { echo "$gitignore/*" | sed 's/^/!/' >> "$tempfile" || fatal "could not write to '$tempfile'" 57; }
done done
if diff -N "$tempfile" "$HOME/.gitignore.d/$VCSH_REPO_NAME" > /dev/null; then if diff -N "$tempfile" "$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME" > /dev/null; then
rm -f "$tempfile" || error "could not delete '$tempfile'" rm -f "$tempfile" || error "could not delete '$tempfile'"
exit exit
fi fi
if [ -e "$HOME/.gitignore.d/$VCSH_REPO_NAME" ]; then if [ -e "$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME" ]; then
info "'$HOME/.gitignore.d/$VCSH_REPO_NAME' differs from new data, moving it to '$HOME/.gitignore.d/$VCSH_REPO_NAME.bak'" info "'$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME' differs from new data, moving it to '$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME.bak'"
mv -f "$HOME/.gitignore.d/$VCSH_REPO_NAME" "$HOME/.gitignore.d/$VCSH_REPO_NAME.bak" || mv -f "$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME" "$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME.bak" ||
fatal "could not move '$HOME/.gitignore.d/$VCSH_REPO_NAME' to '$HOME/.gitignore.d/$VCSH_REPO_NAME.bak'" 53 fatal "could not move '$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME' to '$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME.bak'" 53
fi fi
mv -f "$tempfile" "$HOME/.gitignore.d/$VCSH_REPO_NAME" || mv -f "$tempfile" "$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME" ||
fatal "could not move '$tempfile' to '$HOME/.gitignore.d/$VCSH_REPO_NAME'" 53 fatal "could not move '$tempfile' to '$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME'" 53
} }
if [ "$1" = 'clone' ]; then if [ "$1" = 'clone' ]; then
...@@ -195,7 +196,7 @@ if [ "$1" = 'clone' ]; then ...@@ -195,7 +196,7 @@ if [ "$1" = 'clone' ]; then
GIT_REMOTE="$2" GIT_REMOTE="$2"
[ -n "$3" ] && VCSH_REPO_NAME="$3" || VCSH_REPO_NAME=$(basename "$GIT_REMOTE" .git) [ -n "$3" ] && VCSH_REPO_NAME="$3" || VCSH_REPO_NAME=$(basename "$GIT_REMOTE" .git)
export VCSH_REPO_NAME export VCSH_REPO_NAME
export GIT_DIR="$VCSH_BASE/$VCSH_REPO_NAME.git" export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
elif [ "$1" = 'delete' ] || elif [ "$1" = 'delete' ] ||
[ "$1" = 'enter' ] || [ "$1" = 'enter' ] ||
[ "$1" = 'init' ] || [ "$1" = 'init' ] ||
...@@ -209,8 +210,8 @@ elif [ "$1" = 'delete' ] || ...@@ -209,8 +210,8 @@ elif [ "$1" = 'delete' ] ||
[ "$1" = 'run' -a -z "$3" ] && fatal "$1: please specify a command" 1 [ "$1" = 'run' -a -z "$3" ] && fatal "$1: please specify a command" 1
export VCSH_COMMAND="$1" export VCSH_COMMAND="$1"
export VCSH_REPO_NAME="$2" export VCSH_REPO_NAME="$2"
export GIT_DIR="$VCSH_BASE/$VCSH_REPO_NAME.git" export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
[ "$VCSH_COMMAND" = 'rename' ] && export GIT_DIR_NEW="$VCSH_BASE/$3.git" [ "$VCSH_COMMAND" = 'rename' ] && export GIT_DIR_NEW="$VCSH_REPO_D/$3.git"
[ "$VCSH_COMMAND" = 'run' ] && shift 2 && export VCSH_EXTERNAL_COMMAND="$*" [ "$VCSH_COMMAND" = 'run' ] && shift 2 && export VCSH_EXTERNAL_COMMAND="$*"
[ "$VCSH_COMMAND" = 'write-gitignore' ] [ "$VCSH_COMMAND" = 'write-gitignore' ]
elif [ "$1" = 'list' ] || elif [ "$1" = 'list' ] ||
...@@ -219,14 +220,14 @@ elif [ "$1" = 'list' ] || ...@@ -219,14 +220,14 @@ elif [ "$1" = 'list' ] ||
elif [ -n "$2" ]; then elif [ -n "$2" ]; then
export VCSH_COMMAND='run' export VCSH_COMMAND='run'
export VCSH_REPO_NAME="$1" export VCSH_REPO_NAME="$1"
export GIT_DIR="$VCSH_BASE/$VCSH_REPO_NAME.git" export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
[ -d $GIT_DIR ] || { help; exit 1; } [ -d $GIT_DIR ] || { help; exit 1; }
shift 1 shift 1
export VCSH_EXTERNAL_COMMAND="git $*" export VCSH_EXTERNAL_COMMAND="git $*"
elif [ -n "$1" ]; then elif [ -n "$1" ]; then
export VCSH_COMMAND='enter' export VCSH_COMMAND='enter'
export VCSH_REPO_NAME="$1" export VCSH_REPO_NAME="$1"
export GIT_DIR="$VCSH_BASE/$VCSH_REPO_NAME.git" export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
[ -d $GIT_DIR ] || { help; exit 1; } [ -d $GIT_DIR ] || { help; exit 1; }
else else
# $1 is empty, or 'help' # $1 is empty, or 'help'
...@@ -241,7 +242,7 @@ if echo $VCSH_REPO_NAME | grep -q '/'; then ...@@ -241,7 +242,7 @@ if echo $VCSH_REPO_NAME | grep -q '/'; then
fi fi
for check_directory in "$VCSH_BASE" "$HOME/.gitignore.d" for check_directory in "$VCSH_REPO_D" "$VCSH_BASE/.gitignore.d"
do do
if [ ! -d "$check_directory" ]; then if [ ! -d "$check_directory" ]; then
if [ -e "$check_directory" ]; then if [ -e "$check_directory" ]; then
... ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment