]>
git.madduck.net Git - code/vcsh.git/blobdiff - vcsh
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
- old_dir="$PWD"
- cd "$HOME"
+ cd "$HOME" || fatal "could not enter '$HOME'" 11
use
info "This operation WILL DETROY DATA!"
files=$(git ls-files)
use
info "This operation WILL DETROY DATA!"
files=$(git ls-files)
for file in $files; do
rm -f $file || info "could not delete '$file', continuing with deletion"
done
for file in $files; do
rm -f $file || info "could not delete '$file', continuing with deletion"
done
- rmdir "$GIT_DIR" || info "could not delete '$GIT_DIR'"
- cd "$old_dir"
+ rmdir "$GIT_DIR" || error "could not delete '$GIT_DIR'"
init() {
[ ! -e "$GIT_DIR" ] || fatal "'$GIT_DIR' exists" 10
export GIT_WORK_TREE="$HOME"
init() {
[ ! -e "$GIT_DIR" ] || fatal "'$GIT_DIR' exists" 10
export GIT_WORK_TREE="$HOME"
- mkdir -p "$GIT_WORK_TREE"
+ 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
git init
setup
cd "$GIT_WORK_TREE" || fatal "could not enter '$GIT_WORK_TREE'" 11
git init
setup
- # Switching directory as this has to be executed from $HOME to be of any use.
- # Going back into old directory at the end in case `vcsh use` is reactivated.
- old_dir="$PWD"
- cd "$HOME"
+ cd "$HOME" || fatal "could not enter '$HOME'" 11
gitignores=$(for file in $(git ls-files); do
while true; do
echo $file; new="${file%/*}"
gitignores=$(for file in $(git ls-files); do
while true; do
echo $file; new="${file%/*}"
done;
done | sort -u)
tempfile=$(mktemp) || fatal "could not create tempfile" 51
done;
done | sort -u)
tempfile=$(mktemp) || fatal "could not create tempfile" 51
+ echo '*' > "$tempfile" || fatal "could not write to '$tempfile'" 57
for gitignore in $gitignores; do
for gitignore in $gitignores; do
- echo "$gitignore" | sed 's/^/!/' >> "$tempfile"
- [ -d "$gitignore" ] && echo "$gitignore/*" | sed 's/^/!/'>> "$tempfile"
+ 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
- diff -N "$tempfile" "$HOME/.gitignore.d/$VCSH_REPO_NAME" > /dev/null &&
- rm -f "$tempfile" &&
+ if [ diff -N "$tempfile" "$HOME/.gitignore.d/$VCSH_REPO_NAME" > /dev/null ]; then
+ rm -f "$tempfile" || error "could not delete '$tempfile'"
if [ -e "$HOME/.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'"
mv -f "$HOME/.gitignore.d/$VCSH_REPO_NAME" "$HOME/.gitignore.d/$VCSH_REPO_NAME.bak" ||
if [ -e "$HOME/.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'"
mv -f "$HOME/.gitignore.d/$VCSH_REPO_NAME" "$HOME/.gitignore.d/$VCSH_REPO_NAME.bak" ||
fi
mv -f "$tempfile" "$HOME/.gitignore.d/$VCSH_REPO_NAME" ||
fatal "could not move '$tempfile' to '$HOME/.gitignore.d/$VCSH_REPO_NAME'" 53
fi
mv -f "$tempfile" "$HOME/.gitignore.d/$VCSH_REPO_NAME" ||
fatal "could not move '$tempfile' to '$HOME/.gitignore.d/$VCSH_REPO_NAME'" 53
git config core.worktree "$GIT_WORK_TREE"
git config core.excludesfile ".gitignore.d/$VCSH_REPO_NAME"
git config vcsh.vcsh 'true'
git config core.worktree "$GIT_WORK_TREE"
git config core.excludesfile ".gitignore.d/$VCSH_REPO_NAME"
git config vcsh.vcsh 'true'
- touch "$HOME/.gitignore.d/$VCSH_REPO_NAME"
+ touch "$HOME/.gitignore.d/$VCSH_REPO_NAME" || error "could not touch '$HOME/.gitignore.d/$VCSH_REPO_NAME'"
git add "$HOME/.gitignore.d/$VCSH_REPO_NAME"
}
git add "$HOME/.gitignore.d/$VCSH_REPO_NAME"
}