我有一個混帳以下post-commit鉤子:這可以摧毀我的整個網站嗎?
#!/bin/sh
# Save this in: /home/qwertymk/website-live.git/hooks/post-receive
# let's save all of out js files before the checkout
FILES="$(find /home/qwertymk/public_html -type f -name '*.js')"
for f in $FILES
do
if [[ $f =~ /home/qwertymk/ignore-dir/dev-staging-area/ ]]; then continue; fi
echo "copying - $f"
cp $f $f.jscache
done
# done saving js files before checkout
export GIT_WORK_TREE=/home/qwertymk/public_html/
git checkout -f
# minify each js file that changed
cd /home/qwertymk/website-live.git
FILES=$(git whatchanged -n 1 --pretty=format: --name-only | grep '\.js$')
for f in $FILES
do
echo "processing - $f"
rm /home/qwertymk/public_html/$f.jscache
php /home/qwertymk/jsmin/curl.php /home/qwertymk/public_html/$f
done
# done minifing
# anything that has a .jscache should be moved to the .js
FILES="$(find /home/qwertymk/public_html -type f -name '*.js')"
for f in $FILES
do
if [[ $f =~ /home/qwertymk/public_html/dev-staging-area/ ]]; then continue; fi
if [ ! -f $f.jscache ]; then continue; fi
echo "restoring - $f"
rm $f
mv $f.jscache $f
done
有什麼不對的腳本?
我可以安心使用嗎?
是否有任何角落的情況下,這個劇本可以搞砸我的網站?
有什麼特別令你擔心嗎? – abresas 2012-02-21 03:20:07
@abresas:事實上,我可能會意外刪除所有myjs文件 – qwertymk 2012-02-21 03:32:45
看看其他文章,使用'find ... |同時讀取文件名;在S.O.上張貼這裏。它每天都會被提及。使用'FILES = $(find ...)'將在文件名中有空格或其他奇數字符時破壞,無論是通過設計還是事故。它還有助於將'rm $ f'轉換爲'printf - rm $ f'\ n「'等,這樣您就可以看到將執行的命令。當你滿意時,輸出是安全的,然後將整個腳本輸出重定向到一個shell。即'myGitThing | bash'。祝你好運。 – shellter 2012-02-21 03:55:32