#!/bin/sh set -e main() { [ "$1" = 'run' ] && run_docker [ "$1" = 'test' ] && run_tests } run_docker() { docker run \ --tty \ --rm \ --mount "src=$(pwd),target=/home/test/git-extras,type=bind" \ 'lholota/bash-git' \ bash '/home/test/git-extras/test-git-delete-submodule' 'test' } run_tests() { before_all before_each && test_before_commit before_each && test_after_commit } before_all() { before_all_config before_all_create_repo 'app' before_all_create_repo 'module' } before_all_config() { git config --global user.email "test@test" git config --global user.name "Test Script" PATH="/home/test/git-extras/bin:$PATH" } # $1 - name before_all_create_repo() { cd /home/test || { echo "error: '/home/test' doesn't exist" && exit 1; } mkdir "$1" cd "$1" || exit 1 git init echo "$1" >'README.md' git add 'README.md' git commit -m 'initial commit' } before_each() { cd '/home/test/app' || exit 1 mkdir -p 'lib' git submodule add '/home/test/module' 'lib/module' } test_before_commit() { echo 'TEST: before_commit' bash /home/test/git-extras/bin/git-delete-submodule 'lib/module' } test_after_commit() { echo 'TEST: after_commit' cd '/home/test/app' || exit 1 git add 'lib/module' git commit -m 'add submodule lib/module' bash /home/test/git-extras/bin/git-delete-submodule 'lib/module' } main "$@"