#!/bin/bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
source "$(dirname -- "$0")/../load.sh" || exit 1
require: git

projdir=
remote=
what=auto
push=auto
clobber=ask
args=(
    "\
valider les modifications locales

si la branche courante est une branche wip, écraser les modifications distantes éventuelles après un avertissement.
sinon, ne mettre à jour la branche locale qu'en mode fast-forward"
    "MESSAGE [FILES...]"
    -d:,--projdir projdir= "spécifier le projet dans lequel faire la mise à jour"
    -o:,--remote remote= "spécifier le remote depuis lequel faire le fetch et vers lequel pousser les modifications"
    --auto what=auto "calculer les modifications à valider: soit les fichiers mentionnés, soit ceux de l'index, soit les fichiers modifiés. c'est l'option par défaut"
    -a,--all what=all "valider les modifications sur les fichiers modifiés uniquement"
    -A,--all-new what=new "valider les modifications sur les fichiers modifiés et rajouter aussi les nouveaux fichiers"
    --current push=auto "pousser les modifications sur la branche courante après validation. c'est l'option par défaut"
    -p,--push push=1 "pousser les modifications de toutes les branches après la validation"
    -l,--no-push push= "ne pas pousser les modifications après la validation"
    --clobber clobber=1 "écraser les modifications distantes si la branche courante est une branche wip"
    -n,--no-clobber clobber= "ne jamais écraser les modifications distantes, même si la branche courante est une branche wip"
)
parse_args "$@"; set -- "${args[@]}"