119 lines
2.3 KiB
Bash
119 lines
2.3 KiB
Bash
#!/bin/bash
|
|
|
|
if [[ -z "${WELCOME_SCRIPT_PATH}" ]]; then
|
|
WELCOME_SCRIPT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." &>/dev/null && pwd)"
|
|
fi
|
|
|
|
#region INCLUDES
|
|
. "${WELCOME_SCRIPT_PATH}/config/config_git.sh"
|
|
#endregion
|
|
|
|
getbranch(){
|
|
local branch
|
|
|
|
# Récupère le nom de la branche actuelle
|
|
branch=$(git branch --show-current 2>/dev/null)
|
|
if [[ -z "$branch" ]]; then
|
|
msg_error "Pas dans un dépôt Git"
|
|
exit
|
|
fi
|
|
|
|
echo "$branch"
|
|
}
|
|
|
|
gitinit(){
|
|
git init
|
|
git config user.name "${1:-$CONFIG_GIT_SERVER}"
|
|
git config user.email "${2:-$CONFIG_GIT_SERVER}"
|
|
git add .
|
|
git commit -m "Initial commit"
|
|
git branch -M main
|
|
git remote add origin "${3:-$CONFIG_GIT_SERVER$(basename "$(pwd)")}"
|
|
git push -u origin main
|
|
}
|
|
|
|
gitreset(){
|
|
local branch
|
|
branch=$(getbranch)
|
|
|
|
git fetch origin
|
|
git reset --hard origin/"${1:-$branch}"
|
|
git clean -fd
|
|
|
|
msg_success "Dépôt synchronisé et nettoyé."
|
|
}
|
|
|
|
gitsync(){
|
|
local branch
|
|
branch=$(getbranch)
|
|
|
|
git fetch
|
|
git pull origin "${1:-$branch}"
|
|
}
|
|
|
|
gitclone(){
|
|
|
|
if [[ -z "$1" ]]; then
|
|
msg_warning "Veuillez préciser l'adresse d'un dépôt Git"
|
|
return 1
|
|
fi
|
|
|
|
git init
|
|
git remote add origin "$1"
|
|
git fetch
|
|
git reset --hard origin/main
|
|
git clean -fd
|
|
|
|
msg_success "Dépôt cloné."
|
|
}
|
|
|
|
giturl(){
|
|
local branch
|
|
branch=$(getbranch)
|
|
|
|
git remote set-url origin "$1"
|
|
|
|
msg_success "Url du dépôt changé en $1."
|
|
}
|
|
|
|
gitssl() {
|
|
local choice="${1:-true}"
|
|
git config --global http.sslVerify "$choice"
|
|
}
|
|
|
|
script_update() {
|
|
local BRANCH LOCAL REMOTE current_path
|
|
|
|
current_path="$PWD"
|
|
|
|
cd "$WELCOME_SCRIPT_PATH" || return 2
|
|
|
|
if ! git fetch origin >/dev/null 2>&1; then
|
|
msg_error "Erreur lors du Fetch"
|
|
cd "$current_path" || :
|
|
return 3
|
|
fi
|
|
|
|
BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
LOCAL=$(git rev-parse HEAD)
|
|
REMOTE=$(git rev-parse origin/"$BRANCH")
|
|
|
|
if [ "$LOCAL" = "$REMOTE" ] && git diff --quiet && git diff --cached --quiet; then
|
|
cd "$current_path" || :
|
|
return 0
|
|
fi
|
|
|
|
# update
|
|
echo ""
|
|
|
|
if git reset --hard origin/"$BRANCH"; then
|
|
msg_success "Les script de welcome a été mis à jour !! relancer le ssh pour profiter des nouvelles fonctionnalités"
|
|
echo ""
|
|
cd "$current_path" || :
|
|
return 1
|
|
else
|
|
msg_error "Erreur lors de la mise à jour du script"
|
|
cd "$current_path" || :
|
|
return 4
|
|
fi
|
|
} |