Git clone writable: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| (11 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
[[Category:Tips]] | [[Category:Tips]] | ||
<pre> | <pre> | ||
# | # Annoyingly some 'git clone' files aren't user-writable: dangerously tempts 'sudo rm -rf'!. Bash function. | ||
# Writable git clone | |||
git() | git() | ||
{ | { | ||
if [ $1 = | command git "$@" | ||
if [ $1 = 'clone' ]; then | |||
d="$@"; d=${d##*/}; d=${d%.git}; d=${d##* } | |||
#read -p "dir: $d" | |||
if [ -d "$d" ]; then | |||
chmod -R u+w $d/.git* | |||
# Maybe faster than previous line. | |||
#find $d -iname .git* -perm u-w -exec chmod u+w {} \+ | |||
cd $d | |||
VERSION=$(git log --pretty=format:'%cd_%h' --date=format:'%Y%m%d' | head -n 1) | |||
# Maybe faster than above chmod/find. | |||
#rm -fR .git* | |||
cd .. | |||
tar --exclude-vcs -cJvf $d-$VERSION.tar.xz $d | |||
else echo "save/download error" | |||
fi | |||
fi; | fi; | ||
} | } | ||
</pre> | </pre> | ||
Latest revision as of 11:29, 28 August 2022
# Annoyingly some 'git clone' files aren't user-writable: dangerously tempts 'sudo rm -rf'!. Bash function.
# Writable git clone
git()
{
command git "$@"
if [ $1 = 'clone' ]; then
d="$@"; d=${d##*/}; d=${d%.git}; d=${d##* }
#read -p "dir: $d"
if [ -d "$d" ]; then
chmod -R u+w $d/.git*
# Maybe faster than previous line.
#find $d -iname .git* -perm u-w -exec chmod u+w {} \+
cd $d
VERSION=$(git log --pretty=format:'%cd_%h' --date=format:'%Y%m%d' | head -n 1)
# Maybe faster than above chmod/find.
#rm -fR .git*
cd ..
tar --exclude-vcs -cJvf $d-$VERSION.tar.xz $d
else echo "save/download error"
fi
fi;
}