change factor.sh update to fetch and pull in separate steps so certain platforms that exclusive-lock running scripts won't ruin the repo when factor.sh changes in the future
parent
98f93f799b
commit
a76751fec2
|
@ -14,6 +14,7 @@ WORD=
|
|||
NO_UI=
|
||||
GIT_PROTOCOL=${GIT_PROTOCOL:="git"}
|
||||
GIT_URL=${GIT_URL:=$GIT_PROTOCOL"://factorcode.org/git/factor.git"}
|
||||
SCRIPT_ARGS="$*"
|
||||
|
||||
test_program_installed() {
|
||||
if ! [[ -n `type -p $1` ]] ; then
|
||||
|
@ -353,9 +354,40 @@ git_clone() {
|
|||
invoke_git clone $GIT_URL
|
||||
}
|
||||
|
||||
git_pull_factorcode() {
|
||||
echo "Updating the git repository from factorcode.org..."
|
||||
invoke_git pull $GIT_URL master
|
||||
update_script_name() {
|
||||
echo `dirname $0`/_update.sh
|
||||
}
|
||||
|
||||
update_script() {
|
||||
echo "Updating and restarting the factor.sh script..."
|
||||
|
||||
update_script=`update_script_name`
|
||||
|
||||
echo "#!/bin/sh" >"$update_script"
|
||||
echo "git pull \"$GIT_URL\" master" >>"$update_script"
|
||||
echo "if [[ \$? -eq 0 ]]; then exec \"$0\" $SCRIPT_ARGS; else echo \"git pull failed\"; exit 2; fi" \
|
||||
>>"$update_script"
|
||||
echo "exit 0" >>"$update_script"
|
||||
|
||||
chmod 755 "$update_script"
|
||||
exec "$update_script"
|
||||
}
|
||||
|
||||
update_script_changed() {
|
||||
invoke_git diff --stat `invoke_git merge-base HEAD FETCH_HEAD` FETCH_HEAD | grep 'build-support.factor\.sh' >/dev/null
|
||||
}
|
||||
|
||||
git_fetch_factorcode() {
|
||||
echo "Fetching the git repository from factorcode.org..."
|
||||
|
||||
rm -f `update_script_name`
|
||||
invoke_git fetch "$GIT_URL" master
|
||||
|
||||
if update_script_changed; then
|
||||
update_script
|
||||
else
|
||||
invoke_git pull "$GIT_URL" master
|
||||
fi
|
||||
}
|
||||
|
||||
cd_factor() {
|
||||
|
@ -475,7 +507,7 @@ install() {
|
|||
|
||||
update() {
|
||||
get_config_info
|
||||
git_pull_factorcode
|
||||
git_fetch_factorcode
|
||||
backup_factor
|
||||
make_clean
|
||||
make_factor
|
||||
|
|
Loading…
Reference in New Issue