Git clone writable: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(3 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 | ||
#find | 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; }