diff --git a/examples/examples.sh b/examples/examples.sh index 106a40a..6867a06 100755 --- a/examples/examples.sh +++ b/examples/examples.sh @@ -1,17 +1,30 @@ #!/bin/bash if [ $# -eq 0 ]; then - echo "Usage: $0 [...]" + echo "Usage: $0 " exit 1 fi +# set the examples directories +declare -a examples=( + "java" + "kotlin" + "annotation-processor/java" + "annotation-processor/kotlin") + dir=$(dirname "$(readlink -f "$0")") -color=$(tput setaf 6) +cyan=$(tput setaf 6) normal=$(tput sgr0) -for ex in "java" "kotlin" "annotation-processor/java" "annotation-processor/kotlin"; do +i=0 +for ex in "${examples[@]}"; do + if [ $i -ne 0 ] + then + read -p "Press [Enter] key to continue..." + clear + fi cd "$dir/$ex" || exit 1 - echo "> Project: ${color}${ex}${normal}" - ./gradlew clean "$@" --console=plain --no-build-cache || exit 1 - echo + echo "> Project: ${cyan}${ex}${normal}" + ./gradlew --console=plain --no-build-cache clean "$@" || exit 1 + (( i++ )) done diff --git a/preflightcheck.sh b/preflightcheck.sh new file mode 100644 index 0000000..7187b20 --- /dev/null +++ b/preflightcheck.sh @@ -0,0 +1,157 @@ +#!/bin/bash + +# set source and test locations +src="src/main/kotlin/net/thauvin/erik/gradle/semver/" +test="src/main/kotlin/net/thauvin/erik/gradle/semver/" +# e.g: .java, .kt, etc. +ext=".kt" +java8=true +# e.g: +declare -a examples=( + "examples/java incrementBuildMeta run" + "examples/kotlin incrementBuildMeta run" + "examples/annotation-processor/java incrementMinor run" + "examples/annotation-processor/kotlin incrementMinor run") +# e.g: empty or javadoc, etc. +doc="" +# e.g. empty or sonarqube +sonar="sonarqube" + +# gradle default command line args +opts="--console=plain --no-build-cache --no-daemon" + +### + +if [ "$java8" = true ] +then + export JAVA_HOME="$JAVA8_HOME" + export PATH="$(cygpath "$JAVA_HOME")/bin:$PATH" +fi + +pwd=$PWD +red=$(tput setaf 1) +cyan=$(tput setaf 6) +std=$(tput sgr0) +date=$(date +%Y) + +pause() { + read -p "Press [Enter] key to continue..." + clear +} + +checkCopyright() { + if [ "$(grep -c "$date" "$1")" -eq 0 ] + then + echo -e " Invalid: ${red}$f${std}" + else + echo -e " Checked: $1" + fi +} + +runGradle() { + cd "$1" || exit 1 + echo -e "> Project: ${cyan}${1}${std} [Gradle]" + shift + ./gradlew $opts clean $@ || exit 1 + cd "$pwd" +} + +runKobalt() { + cd "$1" || exit 1 + if [ -f kobalt/src/Build.kt ] + then + read -p "Run Kobalt Example? [y/n]: " choice + case $choice in + [Yy] ) + clear + echo -e "> Project: ${cyan}$1${std} [Kobalt]" + shift + ./kobaltw clean $@ ;; + * ) ;; + esac + fi + cd "$pwd" +} + +updateWrappers() { + clear + ./updatewrappers.sh + pause +} + +checkDeps() { + clear + echo -e "${cyan}Checking depencencies...${std}" + gradle --console=plain dU || exit 1 + pause +} + +gradleCheck() { + clear + echo -e "${cyan}Checking Gradle build....${std}" + gradle $opts clean check $doc $sonar || exit 1 + pause +} + +examples() { + clear + echo -e "Running examples..." + for ex in "${examples[@]}" + do + runGradle $ex + runKobalt $ex + read -p "Continue? [y/n]: " choice + clear + case $choice in + [Yy] ) continue ;; + * ) return ;; + esac + done +} + +validateCopyrights() { + clear + echo -e "${cyan}Validating copyrights...${std}" + for f in LICENSE.TXT ${src}/*${ext} ${test}/*${ext} + do + checkCopyright "$f" + done + pause +} + +everything() { + updateWrappers + checkDeps + gradleCheck + examples + validateCopyrights +} + +showMenu() { + echo " 1. Update Wrappers" + echo " 2. Check Dependencies" + echo " 3. Check Gradle Build" + echo " 4. Run Examples" + echo " 5. Validate Copyrights" + echo " 6. Check Everything" +} + +readOptions(){ + local choice + read -p "Enter choice [1-6]: " choice + case $choice in + 1) updateWrappers ;; + 2) checkDeps ;; + 3) gradleCheck ;; + 4) examples ;; + 5) validateCopyrights ;; + 6) everything ;; + *) exit 0 ;; + esac +} + +while true +do + showMenu + readOptions +done diff --git a/updatewrappers.sh b/updatewrappers.sh new file mode 100644 index 0000000..894497a --- /dev/null +++ b/updatewrappers.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +export JAVA_HOME="$JAVA8_HOME" +export PATH="$(cygpath "$JAVA_HOME")/bin:$PATH" + +# set the examples directories +declare -a dirs=( + "${PWD##*/}" + "examples/java" + "examples/kotlin" + "annotation-processor/java" + "annotation-processor/kotlin") + +pwd=$PWD +cyan=$(tput setaf 6) +green=$(tput setaf 2) +red=$(tput setaf 1) +std=$(tput sgr0) + +kVer=$(kobaltw --version | awk '{print substr($2, 1, length($2)-1)}') +updateWrappers() { + curVer="$(gradle --version | awk '/Gradle/ {print $2}')" + if [ -d gradle ]; then + if [ "$curVer" != "$(./gradlew --version | awk '/Gradle/ {print $2}')" ]; then + gradle -q --console=plain wrapper + echo -e " $(./gradlew --version | awk '/Gradle/') ${green}UPDATED${std}" + else + echo -e " Gradle $curVer UP-TO-DATE" + fi + fi + if [ -d kobalt ]; then + kw=$(cut -d "=" -f 2 kobalt/wrapper/kobalt-wrapper.properties) + if [ "$kw" = "$kVer" ] + then + echo -e " Kobalt $kw UP-TO-DATE" + else + echo "kobalt.version=$kVer" > kobalt/wrapper/kobalt-wrapper.properties + echo -e " Kobalt $kVer ${green}UPDATED${std}" + fi + fi +} + +echo -e "Updating wrappers..." + +for d in "${dirs[@]}"; do + if [ -d "$d" ]; then + cd "$d" || exit 1 + fi + echo -e " ${cyan}${d}${std}" + updateWrappers + cd "$pwd" +done