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

function display_help() {
    uecho "$scriptname: basculer sur une branche de développement

USAGE
    $scriptname [options] [TOPIC [SOURCE]]

- Vérifier l'existence de la branche develop. La créer si nécessaire en la
  basant sur [origin/]master.
- Vérifier s'il n'y a pas de modifications locales. Sinon, proposer de faire un
  commit ou un stash.
- Si TOPIC est spécifié, et si on n'est pas déjà sur cette branche, basculer
  vers cette nouvelle branche. S'il s'agit d'une nouvelle branche, la baser sur
  la branche SOURCE, qui vaut par défaut develop
- Si TOPIC n'est pas spécifié, basculer sur develop s'il s'agit de la seule
  solution, sinon afficher un menu pour choisir la branche de destination.

OPTIONS
    --init
        Créer la branche develop et la configurer le cas échéant pour qu'elle
        traque la branche origin/develop
    -m, --merge
        Si la branche actuelle est une branche de topic, la merger dans develop
        puis la supprimer. Puis basculer sur la branche develop.
    -l, --log
        Afficher les modifications actuellement effectuée dans la branche de
        topic par rapport à develop.
    -d, --diff
        Afficher les modifications actuellement effectuée dans la branche de
        topic par rapport à develop, sous forme de diff."
}

parse_opts "${PRETTYOPTS[@]}" \
    --help '$exit_with display_help' \
    @ args -- "$@" && set -- "${args[@]}" || die "$args"