diff --git a/action.yml b/action.yml index 815415f..ea5bb29 100644 --- a/action.yml +++ b/action.yml @@ -48,6 +48,10 @@ inputs: description: '[Optional] The directory to wipe and replace in the target repository' default: '' required: false + target-directory-ignored-file-name: + description: '[Optional] A file name within the target directory that is not deleted' + default: '' + required: false runs: using: docker diff --git a/entrypoint.sh b/entrypoint.sh index 61c1c67..d25ea90 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -15,6 +15,7 @@ DESTINATION_REPOSITORY_USERNAME="${8}" TARGET_BRANCH="${9}" COMMIT_MESSAGE="${10}" TARGET_DIRECTORY="${11}" +TARGET_DIRECTORY_IGNORED_FILE_NAME="${12}" if [ -z "$DESTINATION_REPOSITORY_USERNAME" ] then @@ -87,7 +88,10 @@ mv "$CLONE_DIR/.git" "$TEMP_DIR/.git" ABSOLUTE_TARGET_DIRECTORY="$CLONE_DIR/$TARGET_DIRECTORY/" echo "[+] Deleting $ABSOLUTE_TARGET_DIRECTORY" -rm -rf "$ABSOLUTE_TARGET_DIRECTORY" +$CURRENT_DIR="$(pwd)" +cd $ABSOLUTE_TARGET_DIRECTORY +ls | grep -v $TARGET_DIRECTORY_IGNORED_FILE_NAME | xargs rm -fr +cd $CURRENT_DIR echo "[+] Creating (now empty) $ABSOLUTE_TARGET_DIRECTORY" mkdir -p "$ABSOLUTE_TARGET_DIRECTORY"