diff --git a/xcode/build_phases/copy_paste_detection.sh b/xcode/build_phases/copy_paste_detection.sh index 0ab2b1a..132a7d5 100644 --- a/xcode/build_phases/copy_paste_detection.sh +++ b/xcode/build_phases/copy_paste_detection.sh @@ -13,108 +13,23 @@ # Optional environment variables: # SCRIPT_INPUT_FILE_COUNT - number of files listed in "Input files" of build phase. # SCRIPT_INPUT_FILE_{N} - file path to directory that should be checked. -# REFACTORING_MODE - special bool flag for unconditional code checking. # # Modified files: # ${PROJECT_DIR}/code-quality-reports/CPDLog.txt - check report. -# ${PROJECT_DIR}/code-quality-reports/CPDCommit - last checked commit. # # Example of usage: # runner.sh copy_paste_detection.sh Generated Localization Pods # -is_refactoring_mode() -{ - if [ -z "${REFACTORING_MODE}" ]; then - return ${FALSE} - fi +readonly EXIT_SUCCESS=0 +readonly EXIT_FAILURE=1 - local -r STR_MODE=`tr "[:upper:]" "[:lower:]" <<< ${REFACTORING_MODE}` - - if [ ${STR_MODE} == "yes" ] || [ ${STR_MODE} == "true" ] || [ ${STR_MODE} == "1" ]; then - return ${TRUE} - fi - - return ${FALSE} -} - -is_nothing_changed_since_last_check() -{ - if is_refactoring_mode; then - echo "Refactoring mode detected. Skipping commits comparison." - return ${EXIT_FAILURE} - fi - - if [ -z "${COMMIT_FILE_PATH}" ]; then - if [ ! -z "${1}" ]; then - local -r COMMIT_FILE_PATH=${1} - else - echo "COMMIT_FILE_PATH should be defined or passed as first argument!" - return ${EXIT_FAILURE} - fi - fi - - if [ -z "${CURRENT_COMMIT}" ]; then - if [ ! -z "${2}" ]; then - local -r CURRENT_COMMIT=${2} - else - local -r CURRENT_COMMIT=`git rev-parse --verify HEAD` - fi - fi - - local -r LAST_CHECKED_COMMIT=`cat ${COMMIT_FILE_PATH}` || "" - - if [ ${CURRENT_COMMIT} = ${LAST_CHECKED_COMMIT} ]; then - if git diff --quiet --exit-code; then - echo "Commit your changes and run script again." - else - echo "Nothing was changed since ${LAST_CHECKED_COMMIT}. Skipping." - fi - - return ${EXIT_SUCCESS} - else - return ${EXIT_FAILURE} - fi -} - -record_current_commit() -{ - if is_refactoring_mode; then - echo "Refactoring mode detected. Commit won't be recorder." - exit ${EXIT_SUCCESS} - fi - - if [ -v "${CURRENT_COMMIT}" ]; then - if [ ! -v "${1}" ]; then - local -r CURRENT_COMMIT=${1} - else - local -r CURRENT_COMMIT=`git rev-parse --verify HEAD` - fi - fi - - if [ -v "${COMMIT_FILE_PATH}" ]; then - if [ ! -v "${2}" ]; then - local -r COMMIT_FILE_PATH=${2} - else - echo "COMMIT_FILE_PATH should be defined or passed as second argument!" - return ${EXIT_FAILURE} - fi - fi - - echo ${CURRENT_COMMIT} > ${COMMIT_FILE_PATH} -} +readonly TRUE=0 +readonly FALSE=1 if which pmd >/dev/null; then readonly REPORTS_DIR="${PROJECT_DIR}/code-quality-reports" - readonly COMMIT_FILE_PATH="${REPORTS_DIR}/CPDCommit" - - readonly CURRENT_COMMIT=`git rev-parse --verify HEAD` - - if is_nothing_changed_since_last_check; then - exit ${EXIT_SUCCESS} - fi - readonly SOURCES_DIRS=`. ${SCRIPT_DIR}/common/read_input_file_names.sh " " ${PROJECT_DIR}` readonly COMMAND_LINE_ARGUMENTS=$@ @@ -140,8 +55,6 @@ if which pmd >/dev/null; then readonly SED_REPLACEMENT_STRING=$(echo ${PROJECT_DIR} | sed "s/\//\\\\\//g") sed -i '' "s/${SED_REPLACEMENT_STRING}//g" "${REPORTS_DIR}/CPDLog.txt" - - record_current_commit else echo "warning: pmd not installed, install using 'brew install pmd'"