diff --git a/aliases.sh b/aliases.sh index 0e02972..5d31fb9 100644 --- a/aliases.sh +++ b/aliases.sh @@ -569,7 +569,7 @@ pymp () { if [ ! -d "${@:$#}" ] && [ ! -f "${@:$#}" ]; then echo-error "Ășltimo argumento debe ser un fichero existente." fi - flake8 --extend-exclude .venv,*@neomake* --max-line-length $LENGTH ${@:$#} + flake8 --max-line-length $LENGTH ${@:$#} vulture --exclude .venv ${@:$#} } @@ -599,7 +599,7 @@ c () { else cat $@ | jq | batcat --file-name $1 --language json fi - else + else if [[ $(distro-name) = "Arch Linux" ]]; then bat $@ else @@ -630,3 +630,59 @@ compare () { echo "false" && false fi } + +# Emula gitlab-runner sobre docker +# Cfr. https://stackoverflow.com/a/65920577 +runner () { + runner=gitlab-runner + : ' + case $1 in + -h | --help) + runner-help ;; + *) + sudo docker run --entrypoint bash --rm -w $PWD -v $PWD:$PWD \ + -v /var/run/docker.sock:/var/run/docker.sock \ + gitlab/gitlab-runner:latest \ + -c git config --global --add safe.directory "*" ; gitlab-runner exec docker $1 + ;; + esac + ' + case $1 in + -h | --help) + runner-help ;; + -i | --init) + sudo docker run -d --name $runner -w $PWD -v $PWD:$PWD \ + -v /var/run/docker.sock:/var/run/docker.sock \ + gitlab/gitlab-runner:latest 1>/dev/null + ;; + -rm | --remove) + sudo docker rm -f $runner + ;; + *) + sudo docker exec -it -e STAGE=$1 -w $PWD $runner \ + bash -c 'git config --global --add safe.directory "*" ; gitlab-runner exec docker $STAGE' + ;; + esac + unset runner +} + +runner-help () { + echo "runner: utilidad para usar gitlab-runner en un contenedor. + +Uso: + runner [OPT] + +Opciones: + -h | --help Despliega esta ayuda. + -i | --init Inicializa contenedor $runner en $PWD + -rm | --remove Elimina contenedor $runner + * Stage de $runner a probar + +Ejemplos: + runner --init + runner build + runner test + runner deploy + runner -h + runner -rm" +}