Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- usage="Programa para archivar (archive) los archivos modificados en una revisión con Git.
- Uso: $(basename "$0") [-h] [-o | --output] [--repo] [-r | --rev] [-f | --format]
- -h or --help Muestra este texto de ayuda
- -o or --out Directorio o archivo de salida
- --repo Directorio del repositorio a archivar
- -r or --rev Revisión a archivar (Por defecto: HEAD)
- -f or --format Formato del archivo de salida: 'zip', 'tar', 'files' o 'tgz'
- "
- CURRENTDIR=$(pwd)
- REPO="."
- OUT="archive.zip"
- REV="HEAD"
- HELP=0
- FORMAT="zip"
- args="$#"
- if [[ $# > 1 ]]; then
- while [[ $# > 1 ]]
- do
- key="$1"
- case $key in
- -o|--out)
- OUT="$2"
- shift
- ;;
- --repo)
- REPO="$2"
- shift
- ;;
- -r|--rev)
- REVS=$(echo "$2" | tr ":" "\n")
- shift
- ;;
- -f|--format)
- FORMAT="$2"
- shift
- ;;
- -h|--help)
- echo 89
- HELP=1
- shift
- ;;
- *)
- # unknown option
- ;;
- esac
- shift
- done
- else
- if [[ $1 = "-h" || $1 = "--help" ]]; then
- HELP=1
- fi
- fi
- if [ $HELP = 1 ]; then
- echo $usage
- else
- echo "Archiving..."
- cd $REPO
- REV1='';
- REV2='';
- for x in $REVS
- do
- if [[ $REV1 = "" ]]; then
- REV1="$x";
- fi
- REV2="$x"
- done
- hg archive --type $FORMAT --rev $REV2 $(hg log --rev $REV1:$REV2 --template "{files % ' -I {file}'}") ${CURRENTDIR}/${OUT}
- cd $CURRENTDIR
- echo "Done."
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement