diff --git a/.circleci/config.yml b/.circleci/config.yml index 6c0190e..8586151 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,4 +1,3 @@ -version: 2 defaults: &defaults working_directory: ~/repo docker: @@ -6,7 +5,8 @@ defaults: &defaults environment: JVM_OPTS: -Xmx3200m TERM: dumb - CI: true + +version: 2.0 jobs: build_gradle: @@ -16,7 +16,7 @@ jobs: - checkout - restore_cache: keys: - - gradle-dependencies-{{ checksum "build.gradle.kts" }} + - gradle-dependencies-{{ checksum "build.gradle" }} # fallback to using the latest cache if no exact match is found - gradle-dependencies- @@ -25,12 +25,12 @@ jobs: command: ./gradlew dependencies - save_cache: - paths: ~/.gradle - key: gradle-dependencies-{{ checksum "build.gradle.kts" }} + paths: ~/.m2 + key: gradle-dependencies-{{ checksum "build.gradle" }} - run: name: Run All Checks - command: ./gradlew check --scan + command: ./gradlew check - store_artifacts: path: build/reports/ @@ -40,6 +40,6 @@ jobs: workflows: version: 2 - build_gradle: + build_gradle_and_kobalt: jobs: - - build_gradle + - build_gradle \ No newline at end of file diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index a6971e1..0000000 --- a/.editorconfig +++ /dev/null @@ -1,2 +0,0 @@ -[*] -insert_final_newline=true diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml deleted file mode 100644 index f1ac387..0000000 --- a/.github/workflows/gradle.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Java CI with Gradle - -on: [push, pull_request, workflow_dispatch] - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 - with: - java-version: 1.8 - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - name: Test with Gradle - run: ./gradlew check diff --git a/.gitignore b/.gitignore index f007981..6322c7f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,84 +1,29 @@ -.vscode/* -!.vscode/extensions.json -!.vscode/launch.json -!.vscode/settings.json -!.vscode/tasks.json - -__pycache__ +**/.idea/dictionaries +**/.idea/gradle.xml +**/.idea/libraries +**/.idea/tasks.xml +**/.idea/workspace.xml +*.sublime-* +*.iws .classpath .DS_Store .gradle -.history .kobalt -.mtj.tmp/ -.mvn/timing.properties -.mvn/wrapper/maven-wrapper.jar .nb-gradle .project -.scannerwork .settings -*.class -*.code-workspace -*.ctxt -*.iws -*.log -*.nar -*.rar -*.sublime-* -*.tar.gz -*.zip -/**/.idea_modules/ -/**/.idea/**/caches/build_file_checksums.ser -/**/.idea/**/contentModel.xml -/**/.idea/**/dataSources.ids -/**/.idea/**/dataSources.local.xml -/**/.idea/**/dataSources/ -/**/.idea/**/dbnavigator.xml -/**/.idea/**/dictionaries -/**/.idea/**/dynamic.xml -/**/.idea/**/gradle.xml -/**/.idea/**/httpRequests -/**/.idea/**/libraries -/**/.idea/**/mongoSettings.xml -/**/.idea/**/replstate.xml -/**/.idea/**/shelf -/**/.idea/**/shelf/ -/**/.idea/**/sqlDataSources.xml -/**/.idea/**/tasks.xml -/**/.idea/**/uiDesigner.xml -/**/.idea/**/usage.statistics.xml -/**/.idea/**/workspace.xml -/**/.idea/$CACHE_FILE$ -/**/.idea/$PRODUCT_WORKSPACE_FILE$ -atlassian-ide-plugin.xml -bin/ -build/ -cmake-build-*/ -com_crashlytics_export_strings.xml -crashlytics-build.properties -crashlytics.properties -dependency-reduced-pom.xml -deploy/ -dist/ +/bin +/build +/deploy +/dist +/gen +/gradle.properties +/local.properties +/out +/proguard-project.txt +/project.properties +/target +/test-output ehthumbs.db -fabric.properties -gen/ -gradle.properties -hs_err_pid* kobaltBuild -kobaltw*-test -lib/kotlin* -libs/ -local.properties -out/ -pom.xml.next -pom.xml.releaseBackup -pom.xml.tag -pom.xml.versionsBackup -proguard-project.txt -project.properties -release.properties -target/ -test-output -Thumbs.db -venv +Thumbs.db \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 26820aa..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,31 +0,0 @@ -image: gradle:alpine - -variables: - GRADLE_OPTS: "-Dorg.gradle.daemon=false" - -before_script: - - export GRADLE_USER_HOME=`pwd`/.gradle - -stages: - - build - - test - -build: - stage: build - script: ./gradlew --build-cache assemble - cache: - key: "$CI_COMMIT_REF_NAME" - policy: push - paths: - - build - - .gradle - -test: - stage: test - script: ./gradlew check - cache: - key: "$CI_COMMIT_REF_NAME" - policy: pull - paths: - - build - - .gradle diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..13ea6d3 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +semver \ No newline at end of file diff --git a/.idea/checkstyle-idea.xml b/.idea/checkstyle-idea.xml deleted file mode 100644 index 95c433c..0000000 --- a/.idea/checkstyle-idea.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..0a77bef --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/copyright/Erik_s_Copyright_Notice.xml b/.idea/copyright/Erik_s_Copyright_Notice.xml index 914713f..08660a1 100644 --- a/.idea/copyright/Erik_s_Copyright_Notice.xml +++ b/.idea/copyright/Erik_s_Copyright_Notice.xml @@ -1,7 +1,6 @@ - \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml index 1607f69..3423376 100644 --- a/.idea/copyright/profiles_settings.xml +++ b/.idea/copyright/profiles_settings.xml @@ -1,7 +1,8 @@ - - - + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml deleted file mode 100644 index 98b5537..0000000 --- a/.idea/jarRepositories.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..5806fb3 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 692822a..e707cdd 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,19 +1,6 @@ - - - - - - - - - - - - - - + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 4c5218b..7d89215 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,9 @@ - + + + \ No newline at end of file diff --git a/examples/java/.idea/modules/examples-java.iml b/.idea/modules/semver.iml similarity index 62% rename from examples/java/.idea/modules/examples-java.iml rename to .idea/modules/semver.iml index 7c9c673..a320bcb 100644 --- a/examples/java/.idea/modules/examples-java.iml +++ b/.idea/modules/semver.iml @@ -1,5 +1,5 @@ - + diff --git a/.idea/modules/semver_main.iml b/.idea/modules/semver_main.iml new file mode 100644 index 0000000..795be74 --- /dev/null +++ b/.idea/modules/semver_main.iml @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/semver_test.iml b/.idea/modules/semver_test.iml new file mode 100644 index 0000000..cb2c02e --- /dev/null +++ b/.idea/modules/semver_test.iml @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/scopes/Copyright.xml b/.idea/scopes/Copyright.xml deleted file mode 100644 index 5acbcdb..0000000 --- a/.idea/scopes/Copyright.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/.idea/scopes/Sources.xml b/.idea/scopes/Sources.xml new file mode 100644 index 0000000..73614ea --- /dev/null +++ b/.idea/scopes/Sources.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 94a25f7..35eb1dd 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 4a40469..0000000 --- a/.travis.yml +++ /dev/null @@ -1,30 +0,0 @@ -language: java -dist: trusty - -jdk: - - oraclejdk8 - -addons: - sonarcloud: - organization: "ethauvin-github" - -before_cache: - - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock - - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ - -before_install: - - chmod +x gradlew - -script: - - ./gradlew check --scan - -cache: - directories: - - $HOME/.gradle/caches/ - - $HOME/.gradle/wrapper/ - -after_success: - - | - if [ "${TRAVIS_TEST_RESULT}" == 0 ]; then - ./gradlew sonarqube - fi diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 14c8942..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,68 +0,0 @@ -# Change Log - -## [1.0.4](https://github.com/ethauvin/semver-gradle/tree/1.0.4) (2019-07-26) -[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/1.0.3-beta...1.0.4) - -**Implemented enhancements:** - -- Access semver version properties in Gradle build file. [\#8](https://github.com/ethauvin/semver-gradle/issues/8) - -## [1.0.3-beta](https://github.com/ethauvin/semver-gradle/tree/1.0.3-beta) (2019-07-25) -[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/1.0.2...1.0.3-beta) - -**Closed issues:** - -- Thanks! [\#7](https://github.com/ethauvin/semver-gradle/issues/7) - -## [1.0.2](https://github.com/ethauvin/semver-gradle/tree/1.0.2) (2019-05-24) -[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/1.0.1...1.0.2) - -**Implemented enhancements:** - -- version.properties write issue when using NetBeans on Windows. [\#6](https://github.com/ethauvin/semver-gradle/issues/6) - -## [1.0.1](https://github.com/ethauvin/semver-gradle/tree/1.0.1) (2019-05-24) -[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/1.0.0...1.0.1) - -## [1.0.0](https://github.com/ethauvin/semver-gradle/tree/1.0.0) (2019-04-23) -[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.9-beta...1.0.0) - -**Implemented enhancements:** - -- Optionally save version properties [\#1](https://github.com/ethauvin/semver-gradle/issues/1) -- Set prerelease from commandline [\#3](https://github.com/ethauvin/semver-gradle/issues/3) - -**Merged pull requests:** - -- Extended existing tests to include semver property [\#5](https://github.com/ethauvin/semver-gradle/pull/5) ([rveede](https://github.com/rveede)) -- Include full semver version in version.properties [\#4](https://github.com/ethauvin/semver-gradle/pull/4) ([rveede](https://github.com/rveede)) - -## [0.9.9-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.9-beta) (2018-12-20) -[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.8-beta...0.9.9-beta) - -**Merged pull requests:** - -- Add option for disabling saves every project evaluation [\#2](https://github.com/ethauvin/semver-gradle/pull/2) ([lewismorgan](https://github.com/lewismorgan)) - -## [0.9.8-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.8-beta) (2018-07-14) -[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.7-beta...0.9.8-beta) - -## [0.9.7-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.7-beta) (2018-07-13) -[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.6-beta...0.9.7-beta) - -## [0.9.6-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.6-beta) (2018-07-10) -[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.5-beta...0.9.6-beta) - -## [0.9.5-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.5-beta) (2018-07-07) -[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.4-beta...0.9.5-beta) - -## [0.9.4-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.4-beta) (2018-07-03) -[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.3-beta...0.9.4-beta) - -## [0.9.3-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.3-beta) (2018-07-02) -[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.2-beta...0.9.3-beta) - -## [0.9.2-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.2-beta) (2018-07-01) - - -\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* \ No newline at end of file diff --git a/LICENSE.TXT b/LICENSE.TXT index 7345551..b7ddd7f 100644 --- a/LICENSE.TXT +++ b/LICENSE.TXT @@ -1,4 +1,4 @@ -Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net) +Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net) All rights reserved. Redistribution and use in source and binary forms, with or without @@ -24,4 +24,4 @@ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/README.md b/README.md index 681d9b4..33b6930 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ -[![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](http://opensource.org/licenses/BSD-3-Clause) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=ethauvin_semver-gradle&metric=alert_status)](https://sonarcloud.io/dashboard?id=ethauvin_semver-gradle) [![Build Status](https://travis-ci.com/ethauvin/semver-gradle.svg?branch=master)](https://travis-ci.com/ethauvin/semver-gradle) [![CircleCI](https://circleci.com/gh/ethauvin/semver-gradle/tree/master.svg?style=shield)](https://circleci.com/gh/ethauvin/semver-gradle/tree/master) [![Gradle](https://img.shields.io/maven-metadata/v/https/plugins.gradle.org/m2/net/thauvin/erik/gradle/semver/maven-metadata.xml.svg?label=gradle&color=blue)](https://plugins.gradle.org/plugin/net.thauvin.erik.gradle.semver) +[![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](http://opensource.org/licenses/BSD-3-Clause) [![CircleCI](https://circleci.com/gh/ethauvin/semver-gradle/tree/master.svg?style=shield)](https://circleci.com/gh/ethauvin/semver-gradle/tree/master) # Semantic Version Plugin for Gradle -A [Semantic Version](https://semver.org) Plugin for [Gradle](https://gradle.org) that manages a project version via a properties file, and provide tasks to __automatically increment__ major, minor, patch and build version numbers. +A [Semantic Version](https://semver.org) Plugin for [Gradle](https://gradle.org) that manages a project version via a properties file, and provide tasks to __automatically increment__ major, minor and patch build numbers. -The plugin can be used in conjunction with the [__Semantic Version Annotation Processor__](https://github.com/ethauvin/semver). +The plugin can be used in conjunction with the [Semantic Version Annotation Processor](https://github.com/ethauvin/semver). ## Using the plugin -The plugin is published to the Plugin Portal; see instructions there: [__net.thauvin.erik.gradle.semver__](https://plugins.gradle.org/plugin/net.thauvin.erik.gradle.semver) +The plugin is published to the Plugin Portal; see instructions there: [net.thauvin.erik.gradle.semver](https://plugins.gradle.org/plugin/net.thauvin.erik.gradle.semver) ## Version Properties File @@ -21,19 +21,14 @@ version.minor=0 version.patch=0 version.prerelease= version.buildmeta= -version.semver=1.0.0 ``` -To change the version of your project, remove the version from `build.gradle` and simply edit the version properties file to match your version number. - -- __Examples__: [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/java), [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/kotlin) +To change the version of your project, remove the version from your `build.gradle` and simply edit your the version properties file to match your version number. If you need to change the properties file or name of the properties keys to match your own build environment. Please see the [Configuration](#configuration) section. ## Increment Version Tasks -### incrementMajor, incrementMinor and incrementPatch - The `incrementMajor`, `incrementMinor` and `incrementPatch` tasks are available to automatically increment their respective and reset lower counterpart version numbers. - `incrementMajor` will increment the `major` and set the `minor` and `patch` versions to `0`. @@ -54,81 +49,6 @@ someTask { } ``` -- __Examples__: [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/java), [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/kotlin) - -### incrementBuildMeta - -The `incrementBuildMeta` task is available to set the build metadata version to a custom calculated value. - -#### Examples: - -To set the build metadata to a custom formatted date: - -```gradle -incrementBuildMeta { - doFirst { - buildMeta = new Date().format("yyyyMMddHHmmss") - } -} -``` - -```bash -./gradlew incrementBuildMeta - -... - -> Task :incrementBuildMeta -Version: 1.0.16-beta+20180713143416 -``` - -Or to set the build metadata to a custom formatted number with increment: - - -```gradle -incrementBuildMeta { - doFirst { - buildMeta = sprintf("%03d", (buildMeta as Integer) + 1) - } -} -``` - -```bash -./gradlew incrementBuildMeta - -... - -> Task :incrementBuildMeta -Version: 1.0.16-beta+002 -``` - -- __Examples__: [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/java), [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/kotlin) - -## Command Line - -The `major`, `minor`, `patch`, `prerelease` and `buildmeta` versions can also be set via the command line: - -```bash -./gradlew -Dversion.prerelease=beta -Dversion.buildmeta= ... -``` - -```ini -#version.properties -version.major=1 -version.minor=0 -version.patch=0 -version.prerelease=beta -version.buildmeta= -version.semver=1.0.0-beta -``` - -The full semantic version can also be specified via the `semver` property: - -```sh -./gradlew -Dversion.semver=1.0.0-beta ... -``` - -If a version cannot be parsed your build will **fail**. - ## Configuration ### Version File Properties @@ -141,17 +61,15 @@ Property | Description | Default `version.minor` | The minor version. | `0` `version.patch` | The patch version. | `0` `version.prerelease` | The pre-release version | -`version.prerelease.prefix` | The pre-release prefix | `-` `version.buildmeta` | The build metatdata version | +`version.prerelease.prefix` | The pre-release prefix | `-` `version.buildmeta.prefix` | The build metadata prefix | `+` `version.separator` | The version separator. | `.` The version number is built as follows: -`version.major` `version.separator` `version.minor` `version.separator` `version.patch` `[` `version.prerelease.prefix` `version.prerelease` `]` `[` `version.prerelease.prefix` `version.buildmeta` `]` - -For reference, it is automatically included in the `version.semver` property. +`version.major` `version.separtor` `version.minor` `version.separator` `[` `version.prerelease.prefix` `version.prerelease` `]` `[` `version.prerelease.prefix` `version.buildmeta` `]` for example: @@ -162,14 +80,11 @@ version.minor=0 version.patch=0 version.prerelease=beta version.buildmeta=exp.sha.5114f85 -version.semver=1.0.0-beta+exp.sha.5114f85 ``` -`project.version` will be `1.0.0-beta+exp.sha.5114f85` in Gradle. +`projet.version` will be `1.0.0-beta+exp.sha.5114f85` in Gradle. -- __Examples__: [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/java), [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/kotlin) - ### Semver In a Gradle build file, the `semver` block is used to configure how the plugin will read/write the version properties file. In most cases it is not needed. @@ -187,7 +102,6 @@ or using different property keys for the version data: ```gradle semver { keysPrefix = "" // no prefix - semverKey = "version" majorKey = "maj" minorKey = "min" patchKey = "build" @@ -204,23 +118,21 @@ min=0 build=0 rel=beta meta= -version=1.0.0-beta ``` The following `semver` properties are available: Property | Description | Default -:---------------------|:----------------------------------------|:--------------------------- +:---------------------|:----------------------------------------|:------------------------ `properties` | The properties file. | `version.properties` -`semverKey` | The semver property key. | `version.semver` -`majorKey` | The major property key. | `version.major` -`minorKey` | The minor property key. | `version.minor` -`patchKey` | The patch property key. | `version.patch` -`preReleaseKey` | The pre-release property key. | `version.prerelease` -`preReleasePrefixKey` | The build pre-release prefix key. | `version.prerelease.prefix` -`buildMetaKey` | The build metadata property key. | `version.buildmeta` -`buildMetaPrefixKey` | The build metadata prefix property key. | `version.buildmeta.prefix` -`separatorKey` | The separator property key. | `version.separator` +`majorKey` | The major property key. | `major` +`minorKey` | The minor property key. | `minor` +`patchKey` | The patch property key. | `patch` +`preReleaseKey` | The pre-release property key. | `preRelease` +`preReleasePrefixKey` | The build pre-release prefix key. | `preReleasePrefix` +`buildMetaKey` | The build metadata property key. | `buildMeta` +`buildMetaPrefixKey` | The build metadata prefix property key. | `buildMetaPrefix` +`separatorKey` | The separator property key. | `separator` `keysPrefix` | The prefix for all property keys. | `version.` In order to quickly support multiple projects. The `keysPrefix` property is available to set all properties keys prefixes at once: @@ -239,64 +151,8 @@ test.minor=0 test.patch=0 test.prerelease= test.buildmeta= -test.semver=1.0.0 -``` - -- __Examples__: [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/java), [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/kotlin) - -### Semver Extension Properties - -The values stored in the version properties file can individually be accessed using the `semver` extension, for example: - -```gradle - fooTask { - doFirst { - println "Build: $semver.buildMeta" - } - } -``` - -The semver extension properties are: - -Property | Description -:-------------------------|:---------------------------- -`semver.semver` | The full semantic version. -`semver.version` | Same as `semver.semver`. -`semver.major` | The major version. -`semver.minor` | The minor version. -`semver.patch` | The patch version. -`semver.preRelease` | The pre-release version -`semver.preReleasePrefix` | The pre-release prefix -`semver.buildMeta` | The build metatdata version -`semver.buildMetaPrefix` | The build metadata prefix -`semver.separator` | The version separator. - -## Version is "unspecified" - -This is a common problem stemming from the configuration and build phases in Gradle. - -It is always preferable to access to version during the execution stage, in a `doFirst` or `doLast` closure within your tasks: - -```gradle -task foo() { - doFirst { - println project.version - } -} -``` - -or if absolutely necessary, at the end of the configuration stage in a `project.afterEvaluate` block: - -```gradle -foo { - project.afterEvaluate { - println project.version - } -} ``` ## Source Code Generation -If you'd like to incorporate the version number data into your source code, please have a look at the [__Semantic Version Annotation Processor__](https://github.com/ethauvin/semver). - -There are also full [examples](https://github.com/ethauvin/semver-gradle/tree/master/examples/annotation-processor) in both [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/annotation-processor/java) and [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/annotation-processor/kotlin) showing how to use both the plugin and annotation processor concurrently. +If you'd like to incorporate the version number data into your source code, please have a look at the [Semantic Version Annotation Processor](https://github.com/ethauvin/semver). \ No newline at end of file diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml deleted file mode 100644 index 7d98402..0000000 --- a/bitbucket-pipelines.yml +++ /dev/null @@ -1,9 +0,0 @@ -image: openjdk:8 - -pipelines: - default: - - step: - caches: - - gradle - script: - - bash ./gradlew check diff --git a/build.gradle.kts b/build.gradle.kts index 5d51035..1d3913b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,44 +1,45 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { + `kotlin-dsl` `java-gradle-plugin` `maven-publish` - jacoco - kotlin("jvm") version "1.3.72" - id("com.github.ben-manes.versions") version "0.36.0" - id("com.gradle.plugin-publish") version "0.12.0" - id("io.gitlab.arturbosch.detekt") version "1.14.2" - id("org.gradle.kotlin.kotlin-dsl") version "1.3.6" - id("org.sonarqube") version "3.0" + id("com.gradle.plugin-publish") version "0.9.10" + id("com.github.ben-manes.versions") version "0.20.0" + id("org.jlleitschuh.gradle.ktlint") version "4.1.0" } -version = "1.0.5-beta" +version = "0.9.2-beta" group = "net.thauvin.erik.gradle" -object VersionInfo { - const val spek = "2.0.13" -} -val versions: VersionInfo by extra { VersionInfo } +var github = "https://github.com/ethauvin/semver-gradle" +var packageName = "net.thauvin.erik.gradle.semver" -val github = "https://github.com/ethauvin/semver-gradle" -val packageName = "net.thauvin.erik.gradle.semver" +var spekVersion = "1.1.5" repositories { jcenter() } dependencies { - implementation(gradleApi()) + compile(gradleApi()) - implementation(platform("org.jetbrains.kotlin:kotlin-bom")) - implementation(kotlin("stdlib")) testImplementation(kotlin("reflect")) testImplementation(kotlin("test")) - testImplementation(gradleTestKit()) - testImplementation("org.spekframework.spek2:spek-dsl-jvm:${versions.spek}") - testRuntimeOnly("org.spekframework.spek2:spek-runner-junit5:${versions.spek}") + testImplementation("org.jetbrains.spek:spek-api:$spekVersion") { + exclude(group = "org.jetbrains.kotlin") + } + + testRuntimeOnly("org.jetbrains.spek:spek-junit-platform-engine:$spekVersion") { + exclude(group = "org.jetbrains.kotlin") + exclude(group = "org.junit.platform") + } + + testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.2.0") { + because("Needed to run tests IDEs that bundle an older version") + } } tasks { @@ -50,42 +51,19 @@ tasks { withType { useJUnitPlatform { - includeEngines("spek2") + includeEngines("spek") } } - withType { - reports { - html.isEnabled = true - xml.isEnabled = true - } - } - - "sonarqube" { - dependsOn("jacocoTestReport") - } -} - -detekt { - // input = files("src/main/kotlin", "src/test/kotlin") - // filters = ".*/resources/.*,.*/build/.*" - baseline = project.rootDir.resolve("detekt-baseline.xml") -} - -sonarqube { - properties { - property("sonar.projectName", "semver-gradle") - property("sonar.projectKey", "ethauvin_semver-gradle") - property("sonar.sourceEncoding", "UTF-8") + val check by getting { + dependsOn("ktlintCheck") } } gradlePlugin { - plugins { - create(project.name) { + (plugins) { + project.name { id = packageName - displayName = "SemVer Plugin" - description = "Semantic Version Plugin for Gradle" implementationClass = "$packageName.SemverPlugin" } } @@ -94,9 +72,18 @@ gradlePlugin { pluginBundle { website = github vcsUrl = github + description = "Semantic Version Plugin for Gradle" tags = listOf("semver", "semantic", "version", "versioning", "auto-increment", "kotlin", "java") + + (plugins) { + project.name { + id = packageName + displayName = project.name + } + } + mavenCoordinates { groupId = project.group.toString() artifactId = project.name } -} +} \ No newline at end of file diff --git a/detekt-baseline.xml b/detekt-baseline.xml deleted file mode 100644 index 52cc674..0000000 --- a/detekt-baseline.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - MagicNumber:Utils.kt$Utils$3 - MagicNumber:Utils.kt$Utils$4 - MagicNumber:Utils.kt$Utils$5 - NestedBlockDepth:Utils.kt$Utils$fun loadProperties(file: File): Properties - NestedBlockDepth:Utils.kt$Utils$fun parseSemVer(input: String?, version: Version): Boolean - NestedBlockDepth:Utils.kt$Utils$fun saveProperties(projectDir: File, config: SemverConfig, version: Version) - - diff --git a/examples/annotation-processor/java/.editorconfig b/examples/annotation-processor/java/.editorconfig deleted file mode 100644 index a6971e1..0000000 --- a/examples/annotation-processor/java/.editorconfig +++ /dev/null @@ -1,2 +0,0 @@ -[*] -insert_final_newline=true diff --git a/examples/annotation-processor/java/.gitattributes b/examples/annotation-processor/java/.gitattributes deleted file mode 100644 index 6ec2ae2..0000000 --- a/examples/annotation-processor/java/.gitattributes +++ /dev/null @@ -1,5 +0,0 @@ -# Set the default behavior, in case people don't have core.autocrlf set. -* text=auto - -# batch files are specific to windows and always crlf -*.bat eol=crlf diff --git a/examples/annotation-processor/java/.gitignore b/examples/annotation-processor/java/.gitignore deleted file mode 100644 index a78c5c2..0000000 --- a/examples/annotation-processor/java/.gitignore +++ /dev/null @@ -1,82 +0,0 @@ -!.vscode/extensions.json -!.vscode/launch.json -!.vscode/settings.json -!.vscode/tasks.json -!gradle-wrapper.jar -.classpath -.DS_Store -.gradle -.history -.idea_modules/ -.idea/**/contentModel.xml -.idea/**/dataSources.ids -.idea/**/dataSources.local.xml -.idea/**/dataSources/ -.idea/**/dbnavigator.xml -.idea/**/dictionaries -.idea/**/dynamic.xml -.idea/**/gradle.xml -.idea/**/libraries -.idea/**/mongoSettings.xml -.idea/**/shelf -.idea/**/sqlDataSources.xml -.idea/**/tasks.xml -.idea/**/uiDesigner.xml -.idea/**/usage.statistics.xml -.idea/**/workspace.xml -.idea/caches/build_file_checksums.ser -.idea/httpRequests -.idea/replstate.xml -.kobalt -.mtj.tmp/ -.mvn/timing.properties -.mvn/wrapper/maven-wrapper.jar -.nb-gradle -.project -.scannerwork -.settings -.vscode/* -*.class -*.code-workspace -*.ctxt -*.ear -*.iws -*.jar -*.log -*.nar -*.rar -*.sublime-* -*.tar.gz -*.war -*.zip -atlassian-ide-plugin.xml -bin/ -build/ -cmake-build-*/ -com_crashlytics_export_strings.xml -crashlytics-build.properties -crashlytics.properties -dependency-reduced-pom.xml -deploy/ -dist/ -ehthumbs.db -fabric.properties -gen/ -gradle.properties -hs_err_pid* -kobaltBuild -kobaltw*-test -lib/kotlin* -libs/ -local.properties -out/ -pom.xml.next -pom.xml.releaseBackup -pom.xml.tag -pom.xml.versionsBackup -proguard-project.txt -project.properties -release.properties -target/ -test-output -Thumbs.db diff --git a/examples/annotation-processor/java/.idea/compiler.xml b/examples/annotation-processor/java/.idea/compiler.xml deleted file mode 100644 index cb1142d..0000000 --- a/examples/annotation-processor/java/.idea/compiler.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/java/.idea/encodings.xml b/examples/annotation-processor/java/.idea/encodings.xml deleted file mode 100644 index 97626ba..0000000 --- a/examples/annotation-processor/java/.idea/encodings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/java/.idea/inspectionProfiles/Project_Default.xml b/examples/annotation-processor/java/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index 8ff795e..0000000 --- a/examples/annotation-processor/java/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - \ No newline at end of file diff --git a/examples/annotation-processor/java/.idea/misc.xml b/examples/annotation-processor/java/.idea/misc.xml deleted file mode 100644 index db06c18..0000000 --- a/examples/annotation-processor/java/.idea/misc.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/java/.idea/modules.xml b/examples/annotation-processor/java/.idea/modules.xml deleted file mode 100644 index 7cd1f26..0000000 --- a/examples/annotation-processor/java/.idea/modules.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/java/.idea/modules/ap-examples-java.iml b/examples/annotation-processor/java/.idea/modules/ap-examples-java.iml deleted file mode 100644 index 57e5b58..0000000 --- a/examples/annotation-processor/java/.idea/modules/ap-examples-java.iml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/java/.idea/modules/ap-examples-java.main.iml b/examples/annotation-processor/java/.idea/modules/ap-examples-java.main.iml deleted file mode 100644 index c65ff83..0000000 --- a/examples/annotation-processor/java/.idea/modules/ap-examples-java.main.iml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/java/.idea/modules/ap-examples-java.test.iml b/examples/annotation-processor/java/.idea/modules/ap-examples-java.test.iml deleted file mode 100644 index e3e8de5..0000000 --- a/examples/annotation-processor/java/.idea/modules/ap-examples-java.test.iml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/java/.idea/vcs.xml b/examples/annotation-processor/java/.idea/vcs.xml deleted file mode 100644 index c2365ab..0000000 --- a/examples/annotation-processor/java/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/java/build.gradle b/examples/annotation-processor/java/build.gradle deleted file mode 100644 index b343869..0000000 --- a/examples/annotation-processor/java/build.gradle +++ /dev/null @@ -1,48 +0,0 @@ -plugins { - id 'java' - id 'application' - id 'net.thauvin.erik.gradle.semver' version '1.0.4' - id 'com.github.ben-manes.versions' version '0.28.0' -} - -// ./gradlew -// ./gradlew clean incrementPatch run -// ./gradlew clean incrementMinor run -// ./gradlew clean incrementMajor run - -mainClassName = 'com.example.Example' - -defaultTasks 'run' - -def semverProcessor = "net.thauvin.erik:semver:1.2.0" - -dependencies { - annotationProcessor semverProcessor - implementation semverProcessor -} - -tasks.withType(JavaCompile) { - options.annotationProcessorGeneratedSourcesDirectory = file("${projectDir}/src/generated/java") - options.compilerArgs += [ "-Asemver.project.dir=$projectDir" ] -} - -repositories { - mavenLocal() - jcenter() -} - -run { - doFirst { - println "Version: $version" - } - -// args = ['example.properties'] - args = ['version.properties'] -} - -semver { -// properties = "example.properties" -// keysPrefix = "example." -// preReleaseKey = "release" -// buildMetaKey = "meta" -} diff --git a/examples/annotation-processor/java/example.properties b/examples/annotation-processor/java/example.properties deleted file mode 100644 index ef37d26..0000000 --- a/examples/annotation-processor/java/example.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by the Semver Plugin for Gradle -#Thu Nov 01 18:52:23 PDT 2018 -example.major=1 -example.meta= -example.minor=0 -example.patch=0 -example.release= diff --git a/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.jar b/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index f3d88b1..0000000 Binary files a/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.properties b/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index a2bf131..0000000 --- a/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.2-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/examples/annotation-processor/java/gradlew b/examples/annotation-processor/java/gradlew deleted file mode 100755 index 2fe81a7..0000000 --- a/examples/annotation-processor/java/gradlew +++ /dev/null @@ -1,183 +0,0 @@ -#!/usr/bin/env sh - -# -# Copyright 2015 the original author or authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn () { - echo "$*" -} - -die () { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=`expr $i + 1` - done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -exec "$JAVACMD" "$@" diff --git a/examples/annotation-processor/java/gradlew.bat b/examples/annotation-processor/java/gradlew.bat deleted file mode 100644 index 62bd9b9..0000000 --- a/examples/annotation-processor/java/gradlew.bat +++ /dev/null @@ -1,103 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/examples/annotation-processor/java/settings.gradle b/examples/annotation-processor/java/settings.gradle deleted file mode 100644 index 73dfdee..0000000 --- a/examples/annotation-processor/java/settings.gradle +++ /dev/null @@ -1,10 +0,0 @@ -/* - * This file was generated by the Gradle 'init' task. - * - * The settings file is used to specify which projects to include in your build. - * - * Detailed information about configuring a multi-project build in Gradle can be found - * in the user guide at https://docs.gradle.org/4.8.1/userguide/multi_project_builds.html - */ - -rootProject.name = 'ap-examples-java' diff --git a/examples/annotation-processor/java/src/generated/java/com/example/GeneratedVersion.java b/examples/annotation-processor/java/src/generated/java/com/example/GeneratedVersion.java deleted file mode 100644 index 5010897..0000000 --- a/examples/annotation-processor/java/src/generated/java/com/example/GeneratedVersion.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * This file is automatically generated. - * Do not modify! -- ALL CHANGES WILL BE ERASED! - */ - -package com.example; - -import java.util.Date; - -/** - * Provides semantic version information. - * - * @author Semantic Version Annotation Processor - */ -public final class GeneratedVersion { - public static final String PROJECT = "Java Example"; - public static final Date BUILDDATE = new Date(1564027571537L); - public static final int MAJOR = 2; - public static final int MINOR = 10; - public static final int PATCH = 0; - public static final String PRERELEASE = ""; - public static final String PRERELEASE_PREFIX = "-"; - public static final String BUILDMETA = ""; - public static final String BUILDMETA_PREFIX = "+"; - public static final String SEPARATOR = "."; - public static final String VERSION = "2.10.0"; - - /** - * Disables the default constructor. - */ - private GeneratedVersion() { - throw new UnsupportedOperationException("Illegal constructor call."); - } -} diff --git a/examples/annotation-processor/java/src/main/java/com/example/Example.java b/examples/annotation-processor/java/src/main/java/com/example/Example.java deleted file mode 100644 index 723f398..0000000 --- a/examples/annotation-processor/java/src/main/java/com/example/Example.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.example; - -import net.thauvin.erik.semver.Version; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.List; - -import java.text.SimpleDateFormat; - -@Version(properties = "version.properties") -//@Version( -// properties = "example.properties", -// keysPrefix = "example.", -// preReleaseKey = "release", -// buildMetaKey = "meta") -public class Example { - public static void main(String... args) throws IOException { - final SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy 'at' HH:mm:ss z"); - - System.out.println("-----------------------------------------------------"); - - System.out.println(" Version: " + GeneratedVersion.PROJECT + ' ' + GeneratedVersion.VERSION); - - System.out.println(" Built on: " + sdf.format(GeneratedVersion.BUILDDATE)); - System.out.println(" Major: " + GeneratedVersion.MAJOR); - System.out.println(" Minor: " + GeneratedVersion.MINOR); - System.out.println(" Patch: " + GeneratedVersion.PATCH); - System.out.println(" PreRelease: " + GeneratedVersion.PRERELEASE); - System.out.println(" BuildMetaData: " + GeneratedVersion.BUILDMETA); - - System.out.println("-----------------------------------------------------"); - - if (args.length == 1) { - final Path path = Paths.get(args[0]); - if (Files.exists(path)) { - final List content = Files.readAllLines(path); - System.out.println("> cat " + path.getFileName()); - for (final String line : content) { - System.out.println(line); - } - } - } - } -} diff --git a/examples/annotation-processor/java/version.properties b/examples/annotation-processor/java/version.properties deleted file mode 100644 index fc54733..0000000 --- a/examples/annotation-processor/java/version.properties +++ /dev/null @@ -1,9 +0,0 @@ -#Generated by the Semver Plugin for Gradle -#Wed Jul 24 21:06:09 PDT 2019 -version.buildmeta= -version.major=2 -version.minor=10 -version.patch=0 -version.prerelease= -version.project=Java Example -version.semver=2.10.0 diff --git a/examples/annotation-processor/kotlin/.editorconfig b/examples/annotation-processor/kotlin/.editorconfig deleted file mode 100644 index a6971e1..0000000 --- a/examples/annotation-processor/kotlin/.editorconfig +++ /dev/null @@ -1,2 +0,0 @@ -[*] -insert_final_newline=true diff --git a/examples/annotation-processor/kotlin/.gitattributes b/examples/annotation-processor/kotlin/.gitattributes deleted file mode 100644 index 6ec2ae2..0000000 --- a/examples/annotation-processor/kotlin/.gitattributes +++ /dev/null @@ -1,5 +0,0 @@ -# Set the default behavior, in case people don't have core.autocrlf set. -* text=auto - -# batch files are specific to windows and always crlf -*.bat eol=crlf diff --git a/examples/annotation-processor/kotlin/.gitignore b/examples/annotation-processor/kotlin/.gitignore deleted file mode 100644 index 638960b..0000000 --- a/examples/annotation-processor/kotlin/.gitignore +++ /dev/null @@ -1,81 +0,0 @@ -!.vscode/extensions.json -!.vscode/launch.json -!.vscode/settings.json -!.vscode/tasks.json -!gradle-wrapper.jar -.classpath -.DS_Store -.gradle -.history -.idea_modules/ -.idea/**/contentModel.xml -.idea/**/dataSources.ids -.idea/**/dataSources.local.xml -.idea/**/dataSources/ -.idea/**/dbnavigator.xml -.idea/**/dictionaries -.idea/**/dynamic.xml -.idea/**/gradle.xml -.idea/**/libraries -.idea/**/mongoSettings.xml -.idea/**/shelf -.idea/**/sqlDataSources.xml -.idea/**/tasks.xml -.idea/**/uiDesigner.xml -.idea/**/usage.statistics.xml -.idea/**/workspace.xml -.idea/caches/build_file_checksums.ser -.idea/httpRequests -.idea/replstate.xml -.kobalt -.mtj.tmp/ -.mvn/timing.properties -.mvn/wrapper/maven-wrapper.jar -.nb-gradle -.project -.scannerwork -.settings -.vscode/* -*.class -*.code-workspace -*.ctxt -*.ear -*.iws -*.jar -*.log -*.nar -*.rar -*.sublime-* -*.tar.gz -*.war -*.zip -atlassian-ide-plugin.xml -bin/ -build/ -cmake-build-*/ -com_crashlytics_export_strings.xml -crashlytics-build.properties -crashlytics.properties -dependency-reduced-pom.xml -deploy/ -dist/ -ehthumbs.db -fabric.properties -gen/ -hs_err_pid* -kobaltBuild -kobaltw*-test -lib/kotlin* -libs/ -local.properties -out/ -pom.xml.next -pom.xml.releaseBackup -pom.xml.tag -pom.xml.versionsBackup -proguard-project.txt -project.properties -release.properties -target/ -test-output -Thumbs.db diff --git a/examples/annotation-processor/kotlin/.idea/compiler.xml b/examples/annotation-processor/kotlin/.idea/compiler.xml deleted file mode 100644 index 0974d2a..0000000 --- a/examples/annotation-processor/kotlin/.idea/compiler.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/kotlin/.idea/encodings.xml b/examples/annotation-processor/kotlin/.idea/encodings.xml deleted file mode 100644 index 97626ba..0000000 --- a/examples/annotation-processor/kotlin/.idea/encodings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/kotlin/.idea/inspectionProfiles/Project_Default.xml b/examples/annotation-processor/kotlin/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index 8ff795e..0000000 --- a/examples/annotation-processor/kotlin/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - \ No newline at end of file diff --git a/examples/annotation-processor/kotlin/.idea/misc.xml b/examples/annotation-processor/kotlin/.idea/misc.xml deleted file mode 100644 index db06c18..0000000 --- a/examples/annotation-processor/kotlin/.idea/misc.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/kotlin/.idea/modules.xml b/examples/annotation-processor/kotlin/.idea/modules.xml deleted file mode 100644 index 3b646e0..0000000 --- a/examples/annotation-processor/kotlin/.idea/modules.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.iml b/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.iml deleted file mode 100644 index d89813c..0000000 --- a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.iml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.main.iml b/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.main.iml deleted file mode 100644 index 4a6974e..0000000 --- a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.main.iml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.test.iml b/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.test.iml deleted file mode 100644 index 0ab49b9..0000000 --- a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.test.iml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/kotlin/.idea/vcs.xml b/examples/annotation-processor/kotlin/.idea/vcs.xml deleted file mode 100644 index c2365ab..0000000 --- a/examples/annotation-processor/kotlin/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/examples/annotation-processor/kotlin/build.gradle.kts b/examples/annotation-processor/kotlin/build.gradle.kts deleted file mode 100644 index 78cd80b..0000000 --- a/examples/annotation-processor/kotlin/build.gradle.kts +++ /dev/null @@ -1,56 +0,0 @@ -plugins { - kotlin("jvm").version("1.3.61") - application - id("org.jetbrains.kotlin.kapt").version("1.3.61") - id("net.thauvin.erik.gradle.semver").version("1.0.4") - id("com.github.ben-manes.versions").version("0.28.0") -} - -// ./gradlew -// ./gradlew clean incrementPatch run -// ./gradlew clean incrementMinor run -// ./gradlew clean incrementMajor run - -defaultTasks(ApplicationPlugin.TASK_RUN_NAME) - -var semverProcessor = "net.thauvin.erik:semver:1.2.0" - -dependencies { - kapt(semverProcessor) - implementation(semverProcessor) - - implementation(kotlin("stdlib")) -} - -repositories { - mavenLocal() - jcenter() -} - -application { - mainClassName = "com.example.Main" -} - -kapt { - arguments { - arg("semver.project.dir", projectDir) - } -} - -tasks { - "run"(JavaExec::class) { - doFirst { - println("Verion: $version") - } - -// args = listOf("example.properties") - args = listOf("version.properties") - } -} - -semver { -// properties = "example.properties" -// keysPrefix = "example." -// preReleaseKey = "release" -// buildMetaKey = "meta" -} diff --git a/examples/annotation-processor/kotlin/example.properties b/examples/annotation-processor/kotlin/example.properties deleted file mode 100644 index 7c54620..0000000 --- a/examples/annotation-processor/kotlin/example.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by the Semver Plugin for Gradle -#Sun Jul 01 21:42:39 PDT 2018 -example.major=1 -example.release= -example.meta= -example.minor=0 -example.patch=0 diff --git a/examples/annotation-processor/kotlin/gradle.properties b/examples/annotation-processor/kotlin/gradle.properties deleted file mode 100644 index 93cd554..0000000 --- a/examples/annotation-processor/kotlin/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -#kapt.use.worker.api=true diff --git a/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.jar b/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index f3d88b1..0000000 Binary files a/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.properties b/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index a2bf131..0000000 --- a/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.2-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/examples/annotation-processor/kotlin/gradlew b/examples/annotation-processor/kotlin/gradlew deleted file mode 100755 index 2fe81a7..0000000 --- a/examples/annotation-processor/kotlin/gradlew +++ /dev/null @@ -1,183 +0,0 @@ -#!/usr/bin/env sh - -# -# Copyright 2015 the original author or authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn () { - echo "$*" -} - -die () { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=`expr $i + 1` - done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -exec "$JAVACMD" "$@" diff --git a/examples/annotation-processor/kotlin/gradlew.bat b/examples/annotation-processor/kotlin/gradlew.bat deleted file mode 100644 index 62bd9b9..0000000 --- a/examples/annotation-processor/kotlin/gradlew.bat +++ /dev/null @@ -1,103 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/examples/annotation-processor/kotlin/settings.gradle.kts b/examples/annotation-processor/kotlin/settings.gradle.kts deleted file mode 100644 index ff704be..0000000 --- a/examples/annotation-processor/kotlin/settings.gradle.kts +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = "ap-examples-kotlin" diff --git a/examples/annotation-processor/kotlin/src/main/kotlin/com/example/Main.kt b/examples/annotation-processor/kotlin/src/main/kotlin/com/example/Main.kt deleted file mode 100644 index cc503f1..0000000 --- a/examples/annotation-processor/kotlin/src/main/kotlin/com/example/Main.kt +++ /dev/null @@ -1,45 +0,0 @@ -package com.example - -import net.thauvin.erik.semver.Version -import java.io.File -import java.text.SimpleDateFormat - -@Version(properties = "version.properties", type = "kt") -//@Version( -// properties = "example.properties", -// type = "kt", -// keysPrefix = "example.", -// preReleaseKey = "release", -// buildMetaKey = "meta") -class Main { - companion object { - @JvmStatic - fun main(args: Array) { - val sdf = SimpleDateFormat("EEE, d MMM yyyy 'at' HH:mm:ss z") - - println("-----------------------------------------------------") - - println(" Version: ${GeneratedVersion.PROJECT} ${GeneratedVersion.VERSION}") - - println(" Built on: " + sdf.format(GeneratedVersion.BUILDDATE)) - println(" Major: ${GeneratedVersion.MAJOR}") - println(" Minor: ${GeneratedVersion.MINOR}") - println(" Patch: ${GeneratedVersion.PATCH}") - println(" PreRelease: ${GeneratedVersion.PRERELEASE}") - println(" BuildMetaData: ${GeneratedVersion.BUILDMETA}") - - println("-----------------------------------------------------") - - if (args.size == 1) { - File(args[0]).apply { - if (exists()) { - println("> cat $name") - forEachLine { - println(it) - } - } - } - } - } - } -} diff --git a/examples/annotation-processor/kotlin/version.properties b/examples/annotation-processor/kotlin/version.properties deleted file mode 100644 index 8da5e3a..0000000 --- a/examples/annotation-processor/kotlin/version.properties +++ /dev/null @@ -1,9 +0,0 @@ -#Generated by the Semver Plugin for Gradle -#Wed Jul 24 21:06:46 PDT 2019 -version.buildmeta= -version.major=14 -version.minor=3 -version.patch=0 -version.prerelease= -version.project=Kotlin Example -version.semver=14.3.0 diff --git a/examples/examples.sh b/examples/examples.sh deleted file mode 100755 index 787be4a..0000000 --- a/examples/examples.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -# Version 1.0 - -if [ $# -eq 0 ]; then - 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")") -cyan=$(tput setaf 6) -normal=$(tput sgr0) - -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: ${cyan}${ex}${normal}" - ./gradlew --console=plain --no-build-cache clean "$@" || exit 1 - (( i++ )) -done diff --git a/examples/java/.editorconfig b/examples/java/.editorconfig deleted file mode 100644 index a6971e1..0000000 --- a/examples/java/.editorconfig +++ /dev/null @@ -1,2 +0,0 @@ -[*] -insert_final_newline=true diff --git a/examples/java/.gitattributes b/examples/java/.gitattributes deleted file mode 100644 index 6ec2ae2..0000000 --- a/examples/java/.gitattributes +++ /dev/null @@ -1,5 +0,0 @@ -# Set the default behavior, in case people don't have core.autocrlf set. -* text=auto - -# batch files are specific to windows and always crlf -*.bat eol=crlf diff --git a/examples/java/.gitignore b/examples/java/.gitignore deleted file mode 100644 index a78c5c2..0000000 --- a/examples/java/.gitignore +++ /dev/null @@ -1,82 +0,0 @@ -!.vscode/extensions.json -!.vscode/launch.json -!.vscode/settings.json -!.vscode/tasks.json -!gradle-wrapper.jar -.classpath -.DS_Store -.gradle -.history -.idea_modules/ -.idea/**/contentModel.xml -.idea/**/dataSources.ids -.idea/**/dataSources.local.xml -.idea/**/dataSources/ -.idea/**/dbnavigator.xml -.idea/**/dictionaries -.idea/**/dynamic.xml -.idea/**/gradle.xml -.idea/**/libraries -.idea/**/mongoSettings.xml -.idea/**/shelf -.idea/**/sqlDataSources.xml -.idea/**/tasks.xml -.idea/**/uiDesigner.xml -.idea/**/usage.statistics.xml -.idea/**/workspace.xml -.idea/caches/build_file_checksums.ser -.idea/httpRequests -.idea/replstate.xml -.kobalt -.mtj.tmp/ -.mvn/timing.properties -.mvn/wrapper/maven-wrapper.jar -.nb-gradle -.project -.scannerwork -.settings -.vscode/* -*.class -*.code-workspace -*.ctxt -*.ear -*.iws -*.jar -*.log -*.nar -*.rar -*.sublime-* -*.tar.gz -*.war -*.zip -atlassian-ide-plugin.xml -bin/ -build/ -cmake-build-*/ -com_crashlytics_export_strings.xml -crashlytics-build.properties -crashlytics.properties -dependency-reduced-pom.xml -deploy/ -dist/ -ehthumbs.db -fabric.properties -gen/ -gradle.properties -hs_err_pid* -kobaltBuild -kobaltw*-test -lib/kotlin* -libs/ -local.properties -out/ -pom.xml.next -pom.xml.releaseBackup -pom.xml.tag -pom.xml.versionsBackup -proguard-project.txt -project.properties -release.properties -target/ -test-output -Thumbs.db diff --git a/examples/java/.idea/compiler.xml b/examples/java/.idea/compiler.xml deleted file mode 100644 index 0888ebb..0000000 --- a/examples/java/.idea/compiler.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/examples/java/.idea/encodings.xml b/examples/java/.idea/encodings.xml deleted file mode 100644 index 97626ba..0000000 --- a/examples/java/.idea/encodings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/examples/java/.idea/inspectionProfiles/Project_Default.xml b/examples/java/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index 8ff795e..0000000 --- a/examples/java/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - \ No newline at end of file diff --git a/examples/java/.idea/misc.xml b/examples/java/.idea/misc.xml deleted file mode 100644 index db06c18..0000000 --- a/examples/java/.idea/misc.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/examples/java/.idea/modules.xml b/examples/java/.idea/modules.xml deleted file mode 100644 index da0a5ad..0000000 --- a/examples/java/.idea/modules.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/examples/java/.idea/modules/examples-java.main.iml b/examples/java/.idea/modules/examples-java.main.iml deleted file mode 100644 index b3b97ea..0000000 --- a/examples/java/.idea/modules/examples-java.main.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/java/.idea/modules/examples-java.test.iml b/examples/java/.idea/modules/examples-java.test.iml deleted file mode 100644 index 860abdf..0000000 --- a/examples/java/.idea/modules/examples-java.test.iml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/java/.idea/vcs.xml b/examples/java/.idea/vcs.xml deleted file mode 100644 index b2bdec2..0000000 --- a/examples/java/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/examples/java/build.gradle b/examples/java/build.gradle deleted file mode 100644 index e841b08..0000000 --- a/examples/java/build.gradle +++ /dev/null @@ -1,64 +0,0 @@ -plugins { - id 'java' - id 'application' - id 'net.thauvin.erik.gradle.semver' version '1.0.4' - id 'com.github.ben-manes.versions' version '0.36.0' -} - -// ./gradlew -// ./gradlew incrementPatch run -// ./gradlew incrementMinor run -// ./gradlew incrementMajor run -// ./gradlew incrementBuildMeta run -// ./gradlew echoVersion - - -defaultTasks 'run' - -dependencies { - testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' -} - -repositories { - jcenter() -} - -test { - useJUnitPlatform() -} - -application { - mainClassName = 'App' -// project.afterEvaluate { -// println "Version: $version" -// } -} - -semver { -// properties = "example.properties" -// keysPrefix = "example." -// preReleaseKey = "release" -// buildMetaKey = "meta" -} - -incrementBuildMeta { - doFirst { -// buildMeta = sprintf("%03d", (buildMeta as Integer) + 1) - buildMeta = new Date().format("yyyyMMddHHmmss") - } -} - -run { - doFirst { -// println "Version: ${-> version}" - println "Version: $version" - } - -// args = ['example.properties'] - args = ['version.properties'] -} - -task echoVersion(type:Exec) { - commandLine 'echo', "${-> project.version}" -} diff --git a/examples/java/example.properties b/examples/java/example.properties deleted file mode 100644 index 5438279..0000000 --- a/examples/java/example.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by the Semver Plugin for Gradle -#Sun Jul 01 12:21:40 PDT 2018 -example.major=1 -example.release=alpha -example.meta= -example.minor=1 -example.patch=1 diff --git a/examples/java/gradle/wrapper/gradle-wrapper.jar b/examples/java/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index e708b1c..0000000 Binary files a/examples/java/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/examples/java/gradle/wrapper/gradle-wrapper.properties b/examples/java/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index be52383..0000000 --- a/examples/java/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/examples/java/gradlew b/examples/java/gradlew deleted file mode 100755 index 4f906e0..0000000 --- a/examples/java/gradlew +++ /dev/null @@ -1,185 +0,0 @@ -#!/usr/bin/env sh - -# -# Copyright 2015 the original author or authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn () { - echo "$*" -} - -die () { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=`expr $i + 1` - done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -exec "$JAVACMD" "$@" diff --git a/examples/java/gradlew.bat b/examples/java/gradlew.bat deleted file mode 100644 index 107acd3..0000000 --- a/examples/java/gradlew.bat +++ /dev/null @@ -1,89 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/examples/java/java.iml b/examples/java/java.iml deleted file mode 100644 index d6ebd48..0000000 --- a/examples/java/java.iml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/examples/java/settings.gradle b/examples/java/settings.gradle deleted file mode 100644 index 99bca64..0000000 --- a/examples/java/settings.gradle +++ /dev/null @@ -1,10 +0,0 @@ -/* - * This file was generated by the Gradle 'init' task. - * - * The settings file is used to specify which projects to include in your build. - * - * Detailed information about configuring a multi-project build in Gradle can be found - * in the user guide at https://docs.gradle.org/4.8.1/userguide/multi_project_builds.html - */ - -rootProject.name = 'examples-java' diff --git a/examples/java/src/main/java/App.java b/examples/java/src/main/java/App.java deleted file mode 100644 index 32b2431..0000000 --- a/examples/java/src/main/java/App.java +++ /dev/null @@ -1,20 +0,0 @@ -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.List; - -public class App { - public static void main(String... args) throws IOException { - if (args.length == 1) { - final Path path = Paths.get(args[0]); - if (Files.exists(path)) { - final List content = Files.readAllLines(path); - System.out.println("> cat " + path.getFileName()); - for (final String line : content) { - System.out.println(line); - } - } - } - } -} diff --git a/examples/java/src/test/java/AppTest.java b/examples/java/src/test/java/AppTest.java deleted file mode 100644 index b214b69..0000000 --- a/examples/java/src/test/java/AppTest.java +++ /dev/null @@ -1,12 +0,0 @@ -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertAll; - -class AppTest { - @Test - void testAppHasMain() { - final App classUnderTest = new App(); - assertAll("app should have a main method.", - () -> classUnderTest.getClass().getMethod("main", String[].class)); - } -} diff --git a/examples/java/version.properties b/examples/java/version.properties deleted file mode 100644 index f5bf6aa..0000000 --- a/examples/java/version.properties +++ /dev/null @@ -1,8 +0,0 @@ -#Generated by the Semver Plugin for Gradle -#Fri Sep 25 17:38:33 PDT 2020 -version.buildmeta=20200925173833 -version.major=1 -version.minor=0 -version.patch=0 -version.prerelease= -version.semver=1.0.0+20200925173833 diff --git a/examples/kotlin/.editorconfig b/examples/kotlin/.editorconfig deleted file mode 100644 index a6971e1..0000000 --- a/examples/kotlin/.editorconfig +++ /dev/null @@ -1,2 +0,0 @@ -[*] -insert_final_newline=true diff --git a/examples/kotlin/.gitattributes b/examples/kotlin/.gitattributes deleted file mode 100644 index 6ec2ae2..0000000 --- a/examples/kotlin/.gitattributes +++ /dev/null @@ -1,5 +0,0 @@ -# Set the default behavior, in case people don't have core.autocrlf set. -* text=auto - -# batch files are specific to windows and always crlf -*.bat eol=crlf diff --git a/examples/kotlin/.gitignore b/examples/kotlin/.gitignore deleted file mode 100644 index a78c5c2..0000000 --- a/examples/kotlin/.gitignore +++ /dev/null @@ -1,82 +0,0 @@ -!.vscode/extensions.json -!.vscode/launch.json -!.vscode/settings.json -!.vscode/tasks.json -!gradle-wrapper.jar -.classpath -.DS_Store -.gradle -.history -.idea_modules/ -.idea/**/contentModel.xml -.idea/**/dataSources.ids -.idea/**/dataSources.local.xml -.idea/**/dataSources/ -.idea/**/dbnavigator.xml -.idea/**/dictionaries -.idea/**/dynamic.xml -.idea/**/gradle.xml -.idea/**/libraries -.idea/**/mongoSettings.xml -.idea/**/shelf -.idea/**/sqlDataSources.xml -.idea/**/tasks.xml -.idea/**/uiDesigner.xml -.idea/**/usage.statistics.xml -.idea/**/workspace.xml -.idea/caches/build_file_checksums.ser -.idea/httpRequests -.idea/replstate.xml -.kobalt -.mtj.tmp/ -.mvn/timing.properties -.mvn/wrapper/maven-wrapper.jar -.nb-gradle -.project -.scannerwork -.settings -.vscode/* -*.class -*.code-workspace -*.ctxt -*.ear -*.iws -*.jar -*.log -*.nar -*.rar -*.sublime-* -*.tar.gz -*.war -*.zip -atlassian-ide-plugin.xml -bin/ -build/ -cmake-build-*/ -com_crashlytics_export_strings.xml -crashlytics-build.properties -crashlytics.properties -dependency-reduced-pom.xml -deploy/ -dist/ -ehthumbs.db -fabric.properties -gen/ -gradle.properties -hs_err_pid* -kobaltBuild -kobaltw*-test -lib/kotlin* -libs/ -local.properties -out/ -pom.xml.next -pom.xml.releaseBackup -pom.xml.tag -pom.xml.versionsBackup -proguard-project.txt -project.properties -release.properties -target/ -test-output -Thumbs.db diff --git a/examples/kotlin/.idea/compiler.xml b/examples/kotlin/.idea/compiler.xml deleted file mode 100644 index 3628231..0000000 --- a/examples/kotlin/.idea/compiler.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/examples/kotlin/.idea/encodings.xml b/examples/kotlin/.idea/encodings.xml deleted file mode 100644 index 97626ba..0000000 --- a/examples/kotlin/.idea/encodings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/examples/kotlin/.idea/inspectionProfiles/Project_Default.xml b/examples/kotlin/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index 8ff795e..0000000 --- a/examples/kotlin/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - \ No newline at end of file diff --git a/examples/kotlin/.idea/misc.xml b/examples/kotlin/.idea/misc.xml deleted file mode 100644 index db06c18..0000000 --- a/examples/kotlin/.idea/misc.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/examples/kotlin/.idea/modules.xml b/examples/kotlin/.idea/modules.xml deleted file mode 100644 index 825faa5..0000000 --- a/examples/kotlin/.idea/modules.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/examples/kotlin/.idea/modules/examples-kotlin.iml b/examples/kotlin/.idea/modules/examples-kotlin.iml deleted file mode 100644 index 81fc2ee..0000000 --- a/examples/kotlin/.idea/modules/examples-kotlin.iml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/kotlin/.idea/modules/examples-kotlin.main.iml b/examples/kotlin/.idea/modules/examples-kotlin.main.iml deleted file mode 100644 index 9848c98..0000000 --- a/examples/kotlin/.idea/modules/examples-kotlin.main.iml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/kotlin/.idea/modules/examples-kotlin.test.iml b/examples/kotlin/.idea/modules/examples-kotlin.test.iml deleted file mode 100644 index 7925939..0000000 --- a/examples/kotlin/.idea/modules/examples-kotlin.test.iml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/kotlin/.idea/vcs.xml b/examples/kotlin/.idea/vcs.xml deleted file mode 100644 index b2bdec2..0000000 --- a/examples/kotlin/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/examples/kotlin/build.gradle.kts b/examples/kotlin/build.gradle.kts deleted file mode 100644 index d54e882..0000000 --- a/examples/kotlin/build.gradle.kts +++ /dev/null @@ -1,64 +0,0 @@ -import net.thauvin.erik.gradle.semver.SemverIncrementBuildMetaTask -import java.lang.String.format -import java.time.LocalDateTime -import java.time.format.DateTimeFormatter - -plugins { - kotlin("jvm").version("1.4.10") - application - id("net.thauvin.erik.gradle.semver").version("1.0.4") - id("com.github.ben-manes.versions").version("0.36.0") -} - -// ./gradlew -// ./gradlew incrementPatch run -// ./gradlew incrementMinor run -// ./gradlew incrementMajor run -// ./gradlew incrementBuildMeta run - -defaultTasks(ApplicationPlugin.TASK_RUN_NAME) - -dependencies { - implementation(kotlin("stdlib")) - testImplementation("org.testng:testng:7.3.0") -} - -repositories { - jcenter() -} - -application { - mainClassName = "com.example.MainKt" -// project.afterEvaluate { -// println("Version: $version") -// } -} - -semver { -// properties = "example.properties" -// keysPrefix = "example." -// preReleaseKey = "release" -// buildMetaKey = "meta" -} - -tasks { - withType { - useTestNG() - } - - "incrementBuildMeta"(SemverIncrementBuildMetaTask::class) { - doFirst { -// buildMeta = format("%03d", buildMeta.toInt() + 1) - buildMeta = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) - } - } - - "run"(JavaExec::class) { - doFirst { - println("Version: $version") - } - -// args = listOf("example.properties") - args = listOf("version.properties") - } -} diff --git a/examples/kotlin/example.properties b/examples/kotlin/example.properties deleted file mode 100644 index 849d314..0000000 --- a/examples/kotlin/example.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by the Semver Plugin for Gradle -#Thu Nov 01 18:52:15 PDT 2018 -example.major=1 -example.meta=20181101185211 -example.minor=0 -example.patch=0 -example.release=beta diff --git a/examples/kotlin/gradle/wrapper/gradle-wrapper.jar b/examples/kotlin/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index e708b1c..0000000 Binary files a/examples/kotlin/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/examples/kotlin/gradle/wrapper/gradle-wrapper.properties b/examples/kotlin/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index be52383..0000000 --- a/examples/kotlin/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/examples/kotlin/gradlew b/examples/kotlin/gradlew deleted file mode 100755 index 4f906e0..0000000 --- a/examples/kotlin/gradlew +++ /dev/null @@ -1,185 +0,0 @@ -#!/usr/bin/env sh - -# -# Copyright 2015 the original author or authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn () { - echo "$*" -} - -die () { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=`expr $i + 1` - done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -exec "$JAVACMD" "$@" diff --git a/examples/kotlin/gradlew.bat b/examples/kotlin/gradlew.bat deleted file mode 100644 index 107acd3..0000000 --- a/examples/kotlin/gradlew.bat +++ /dev/null @@ -1,89 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/examples/kotlin/settings.gradle.kts b/examples/kotlin/settings.gradle.kts deleted file mode 100644 index 65d0bd6..0000000 --- a/examples/kotlin/settings.gradle.kts +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = "examples-kotlin" diff --git a/examples/kotlin/src/main/kotlin/com/example/Main.kt b/examples/kotlin/src/main/kotlin/com/example/Main.kt deleted file mode 100644 index caaa0c1..0000000 --- a/examples/kotlin/src/main/kotlin/com/example/Main.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.example - -import java.io.File - -fun main(args: Array) { - if (args.size == 1) { - File(args[0]).apply { - if (exists()) { - println("> cat $name") - forEachLine { - println(it) - } - } - } - } -} diff --git a/examples/kotlin/src/test/kotlin/com/example/MainTest.kt b/examples/kotlin/src/test/kotlin/com/example/MainTest.kt deleted file mode 100644 index e49aac0..0000000 --- a/examples/kotlin/src/test/kotlin/com/example/MainTest.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.example - -import org.testng.annotations.Test - -class ExampleTest { - @Test - fun f() = println("Running test") -} diff --git a/examples/kotlin/version.properties b/examples/kotlin/version.properties deleted file mode 100644 index 98e937a..0000000 --- a/examples/kotlin/version.properties +++ /dev/null @@ -1,8 +0,0 @@ -#Generated by the Semver Plugin for Gradle -#Mon Nov 09 21:24:16 PST 2020 -version.buildmeta=20201109212416 -version.major=1 -version.minor=2 -version.patch=4 -version.prerelease=beta -version.semver=1.2.4-beta+20201109212416 diff --git a/examples/test/.editorconfig b/examples/test/.editorconfig deleted file mode 100644 index a6971e1..0000000 --- a/examples/test/.editorconfig +++ /dev/null @@ -1,2 +0,0 @@ -[*] -insert_final_newline=true diff --git a/examples/test/.gitignore b/examples/test/.gitignore index 4d64aee..6322c7f 100644 --- a/examples/test/.gitignore +++ b/examples/test/.gitignore @@ -1,83 +1,29 @@ -!.vscode/extensions.json -!.vscode/launch.json -!.vscode/settings.json -!.vscode/tasks.json -!gradle-wrapper.jar +**/.idea/dictionaries +**/.idea/gradle.xml +**/.idea/libraries +**/.idea/tasks.xml +**/.idea/workspace.xml +*.sublime-* +*.iws .classpath .DS_Store .gradle -.history -.idea_modules/ -.idea/**/contentModel.xml -.idea/**/dataSources.ids -.idea/**/dataSources.local.xml -.idea/**/dataSources/ -.idea/**/dbnavigator.xml -.idea/**/dictionaries -.idea/**/dynamic.xml -.idea/**/gradle.xml -.idea/**/libraries -.idea/**/mongoSettings.xml -.idea/**/shelf -.idea/**/sqlDataSources.xml -.idea/**/tasks.xml -.idea/**/uiDesigner.xml -.idea/**/usage.statistics.xml -.idea/**/workspace.xml -.idea/caches/build_file_checksums.ser -.idea/httpRequests -.idea/replstate.xml .kobalt -.mtj.tmp/ -.mvn/timing.properties -.mvn/wrapper/maven-wrapper.jar .nb-gradle .project -.scannerwork .settings -.vscode/* -*.class -*.code-workspace -*.ctxt -*.ear -*.iws -*.jar -*.log -*.nar -*.rar -*.sublime-* -*.tar.gz -*.war -*.zip -atlassian-ide-plugin.xml -bin/ -build/ -cmake-build-*/ -com_crashlytics_export_strings.xml -crashlytics-build.properties -crashlytics.properties -dependency-reduced-pom.xml -deploy/ -dist/ +/bin +/build +/deploy +/dist +/gen +/gradle.properties +/local.properties +/out +/proguard-project.txt +/project.properties +/target +/test-output ehthumbs.db -fabric.properties -gen/ -gradle.properties -hs_err_pid* kobaltBuild -kobaltw*-test -lib/kotlin* -libs/ -local.properties -out/ -pom.xml.next -pom.xml.releaseBackup -pom.xml.tag -pom.xml.versionsBackup -proguard-project.txt -project.properties -release.properties -target/ -test-output -Thumbs.db -version.properties +Thumbs.db \ No newline at end of file diff --git a/examples/test/build.gradle b/examples/test/build.gradle index 9813e76..a0d7017 100644 --- a/examples/test/build.gradle +++ b/examples/test/build.gradle @@ -1,10 +1,9 @@ buildscript { repositories { mavenLocal() - mavenCentral() } dependencies { - classpath "net.thauvin.erik.gradle:semver:1.0.5-beta" + classpath "net.thauvin.erik.gradle:semver:0.9.2-beta" } } @@ -14,51 +13,25 @@ apply plugin: 'net.thauvin.erik.gradle.semver' mainClassName = 'App' -//version = 1.0 - -def f = new File("version.properties") - -def semverProcessor = 'net.thauvin.erik:semver:1.2.0' +version = 1.0 dependencies { - annotationProcessor semverProcessor - compileOnly semverProcessor + } repositories { - mavenLocal() jcenter() } -application { - println(project.version) - project.afterEvaluate { - println(project.version) - } -} - - -incrementBuildMeta { - doFirst { - //buildMeta = sprintf("%03d", (buildMeta as Integer) + 1) - buildMeta = new Date().format("yyyyMMddHHmmss") - } -} - run { + //dependsOn("incrementPatch") doFirst { - println("Version: $semver.major$semver.separator$semver.minor$semver.separator$semver.patch$semver.preReleasePrefix$semver.preRelease$semver.buildMetaPrefix$semver.buildMeta") - args = [f.name] + println("Version: $version") } } -task echoVersion(type:Exec) { - commandLine "echo", "${-> version}" -} - semver { - properties = "${f.name}" - keysPrefix = f.name.substring(0, f.name.indexOf(".") + 1) + properties = "test.properties" + keysPrefix = "test." buildMetaKey = "meta" - semverKey = "fullversion" -} +} \ No newline at end of file diff --git a/examples/test/gradle/wrapper/gradle-wrapper.jar b/examples/test/gradle/wrapper/gradle-wrapper.jar index 5c2d1cf..758de96 100644 Binary files a/examples/test/gradle/wrapper/gradle-wrapper.jar and b/examples/test/gradle/wrapper/gradle-wrapper.jar differ diff --git a/examples/test/gradle/wrapper/gradle-wrapper.properties b/examples/test/gradle/wrapper/gradle-wrapper.properties index 4b7e1f3..2d80b69 100644 --- a/examples/test/gradle/wrapper/gradle-wrapper.properties +++ b/examples/test/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/test/gradlew b/examples/test/gradlew index 8e25e6c..cccdd3d 100755 --- a/examples/test/gradlew +++ b/examples/test/gradlew @@ -1,21 +1,5 @@ #!/usr/bin/env sh -# -# Copyright 2015 the original author or authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - ############################################################################## ## ## Gradle start up script for UN*X @@ -44,7 +28,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +DEFAULT_JVM_OPTS="" # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" diff --git a/examples/test/gradlew.bat b/examples/test/gradlew.bat index 9618d8d..f955316 100644 --- a/examples/test/gradlew.bat +++ b/examples/test/gradlew.bat @@ -1,19 +1,3 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -30,7 +14,7 @@ set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" +set DEFAULT_JVM_OPTS= @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome diff --git a/examples/test/locked b/examples/test/locked deleted file mode 100644 index e69de29..0000000 diff --git a/examples/test/locked.properties b/examples/test/locked.properties deleted file mode 100644 index 03fc5bd..0000000 --- a/examples/test/locked.properties +++ /dev/null @@ -1,8 +0,0 @@ -#Generated by the Semver Plugin for Gradle -#Fri Apr 19 13:31:37 PDT 2019 -version.fullversion=11.0.0-alpha+20190419133137 -version.major=11 -version.meta=20190419133137 -version.minor=0 -version.patch=0 -version.prerelease=alpha diff --git a/examples/test/src/main/java/App.class b/examples/test/src/main/java/App.class index 04cd607..08ab694 100644 Binary files a/examples/test/src/main/java/App.class and b/examples/test/src/main/java/App.class differ diff --git a/examples/test/src/main/java/App.java b/examples/test/src/main/java/App.java index 318ac03..bd9132e 100644 --- a/examples/test/src/main/java/App.java +++ b/examples/test/src/main/java/App.java @@ -1,22 +1,12 @@ -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.List; - +/* + * This Java source file was generated by the Gradle 'init' task. + */ public class App { - public static void main(String[] args) { - new App().cat(args[0]); + public String getGreeting() { + return "Hello world."; } - public void cat(String name) { - try { - final List content = Files.readAllLines(Paths.get(name)); - System.out.println("> cat " + name); - for (String line : content) { - System.out.println(line); - } - } catch (IOException e) { - System.out.println(e); - } + public static void main(String[] args) { + System.out.println(new App().getGreeting()); } -} \ No newline at end of file +} diff --git a/examples/test/src/test/java/AppTest.java b/examples/test/src/test/java/AppTest.java new file mode 100644 index 0000000..e611fc7 --- /dev/null +++ b/examples/test/src/test/java/AppTest.java @@ -0,0 +1,12 @@ +/* + * This Java source file was generated by the Gradle 'init' task. + */ +import org.junit.Test; +import static org.junit.Assert.*; + +public class AppTest { + @Test public void testAppHasAGreeting() { + App classUnderTest = new App(); + assertNotNull("app should have a greeting", classUnderTest.getGreeting()); + } +} diff --git a/examples/test/test.groovy b/examples/test/test.groovy deleted file mode 100644 index 7f66d71..0000000 --- a/examples/test/test.groovy +++ /dev/null @@ -1,8 +0,0 @@ -if (this.args.length > 0) { - for (arg in this.args) { - f = new File(arg) - println("${f.name}\t-> exits: ${f.exists()}, canRead: ${f.canRead()} --> `${f.absoluteFile}`") - } -} else { - println("Usage: groovy ${this.class.getName()} filename") -} \ No newline at end of file diff --git a/examples/test/test.properties b/examples/test/test.properties new file mode 100644 index 0000000..6bcc88e --- /dev/null +++ b/examples/test/test.properties @@ -0,0 +1,7 @@ +#Generated by the Semver Plugin for Gradle +#Sun Jul 01 11:09:26 PDT 2018 +test.major=1 +test.prerelease=beta +test.meta=007 +test.patch=3 +test.minor=0 diff --git a/examples/version.properties b/examples/version.properties deleted file mode 100644 index e60c0e6..0000000 --- a/examples/version.properties +++ /dev/null @@ -1,8 +0,0 @@ -#Generated by the Semver Plugin for Gradle -#Thu May 23 22:24:06 PDT 2019 -version.fullversion=1.0.0 -version.major=1 -version.meta= -version.minor=0 -version.patch=0 -version.prerelease= diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index e708b1c..758de96 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index be52383..2d80b69 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 4f906e0..cccdd3d 100755 --- a/gradlew +++ b/gradlew @@ -1,21 +1,5 @@ #!/usr/bin/env sh -# -# Copyright 2015 the original author or authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - ############################################################################## ## ## Gradle start up script for UN*X @@ -44,7 +28,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +DEFAULT_JVM_OPTS="" # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -82,7 +66,6 @@ esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -126,11 +109,10 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath @@ -156,19 +138,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then else eval `echo args$i`="\"$arg\"" fi - i=`expr $i + 1` + i=$((i+1)) done case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -177,9 +159,14 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=`save "$@"` +APP_ARGS=$(save "$@") # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 107acd3..f955316 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,19 +1,3 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -29,18 +13,15 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" +set DEFAULT_JVM_OPTS= @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if "%ERRORLEVEL%" == "0" goto init echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -54,7 +35,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto execute +if exist "%JAVA_EXE%" goto init echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -64,14 +45,28 @@ echo location of your Java installation. goto fail +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% :end @rem End local scope for the variables with windows NT shell diff --git a/preflightcheck.sh b/preflightcheck.sh deleted file mode 100644 index f95e229..0000000 --- a/preflightcheck.sh +++ /dev/null @@ -1,212 +0,0 @@ -#!/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. -gradle_doc="" -# e.g. empty or sonarqube -gradle_sonar="sonarqube" -# gradle options for examples -gradle_opts="--console=plain --no-build-cache --no-daemon" -# maven arguments for examples -maven_args="compile exec:java" - -# -# Version: 1.1.3 -# - -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..." -} - -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 - clear - reset - echo -e "> Project: ${cyan}${1}${std} [Gradle]" - shift - ./gradlew $@ || exit 1 - pause - cd "$pwd" -} - -runKobalt() { - cd "$1" || exit 1 - if [ -f kobalt/src/Build.kt ] - then - clear - reset - echo -e "> Project: ${cyan}${1}${std} [Kobalt]" - shift - ./kobaltw $@ || exit 1 - pause - fi - cd "$pwd" -} - -runMaven() { - cd "$1" || exit 1 - if [ -f pom.xml ] - then - clear - reset - echo -e "> Project: ${cyan}${1}${std} [Maven]" - shift - mvn $@ || exit 1 - pause - fi - cd "$pwd" -} - -updateWrappers() { - clear - ./updatewrappers.sh - pause -} - -checkDeps() { - clear - echo -e "${cyan}Checking depencencies...${std}" - gradle --console=plain dU || exit 1 - read -p "Check Examples depencencies? [y/n] " cont - clear - case $cont in - [Nn] ) return ;; - * ) for ex in "${!examples[@]}" - do - runGradle $(echo "${examples[ex]}" | cut -d " " -f 1) dU - runKobalt $(echo "${examples[ex]}" | cut -d " " -f 1) checkVersions - runMaven $(echo "${examples[ex]}" | cut -d " " -f 1) versions:display-dependency-updates - if [ "$ex" -eq "${#examples}" ] - then - read -p "Continue? [y/n]: " cont - clear - case $cont in - * ) continue ;; - [Nn] ) return ;; - esac - fi - done ;; - esac -} - -gradleCheck() { - clear - echo -e "${cyan}Checking Gradle build....${std}" - gradle $gradle_opts clean check $gradle_doc $gradle_sonar || exit 1 - pause -} - -runExamples() { - for ex in "${!examples[@]}" - do - runGradle ${examples[ex]} clean $gradle_opts - runKobalt ${examples[ex]} clean - runMaven $(echo "${examples[ex]}" | cut -d " " -f 1) clean $maven_args - done -} - -examplesMenu() { - clear - echo -e "${cyan}Examples${std}" - for ex in "${!examples[@]}" - do - printf ' %d. %s\n' $(($ex + 1)) $(echo "${examples[ex]}" | cut -d " " -f 1) - done - echo " $((${#examples[@]} + 1)). Run All Examples" - read -p "Enter choice [1-${#examples[@]}]: " choice - clear - case $choice in - [0-9] ) if [ "$choice" -gt "${#examples[@]}" ] - then - runExamples - examplesMenu - else - runGradle ${examples[$(($choice - 1))]} - runKobalt ${examples[$(($choice - 1))]} - runMaven $(echo "${examples[$(($choice - 1))]}" | cut -d " " -f 1) $maven_args - examplesMenu - fi ;; - * ) return ;; - esac -} - -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 - runExamples - validateCopyrights -} - -showMenu() { - clear - echo "${cyan}Preflight Check${std}" - 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) examplesMenu ;; - 5) validateCopyrights ;; - 6) everything ;; - *) exit 0 ;; - esac -} - -while true -do - showMenu - readOptions -done diff --git a/settings.gradle.kts b/settings.gradle.kts index e9b895f..849893a 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,17 +1,2 @@ -plugins { - id("com.gradle.enterprise").version("3.3.4") -} - -gradleEnterprise { - buildScan { - link("GitHub", "https://github.com/ethauvin/semver-gradle/tree/master") - if ("true" == System.getenv("CI")) { - publishOnFailure() - tag("CI") - } - termsOfServiceUrl = "https://gradle.com/terms-of-service" - termsOfServiceAgree = "yes" - } -} - rootProject.name = "semver" +enableFeaturePreview("STABLE_PUBLISHING") \ No newline at end of file diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt index 06a8f7b..6da6279 100644 --- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt +++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt @@ -1,7 +1,7 @@ /* * SemverConfig.kt * - * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net) + * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,18 +29,12 @@ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - package net.thauvin.erik.gradle.semver -import javax.inject.Inject - -open class SemverConfig @Inject constructor( - private val semVersion: Version -) { +open class SemverConfig { companion object { const val DEFAULT_KEYS_PREFIX = "version." - const val DEFAULT_PROPERTIES = "${DEFAULT_KEYS_PREFIX}properties" - const val DEFAULT_SEMVER_KEY = "semver" + const val DEFAULT_PROPERTIES = "properties" const val DEFAULT_MAJOR_KEY = "major" const val DEFAULT_MINOR_KEY = "minor" const val DEFAULT_PATCH_KEY = "patch" @@ -52,10 +46,6 @@ open class SemverConfig @Inject constructor( } var properties = DEFAULT_PROPERTIES - - // Keys - var semverKey = DEFAULT_SEMVER_KEY - get() = "$keysPrefix$field" var majorKey = DEFAULT_MAJOR_KEY get() = "$keysPrefix$field" var minorKey = DEFAULT_MINOR_KEY @@ -73,51 +63,4 @@ open class SemverConfig @Inject constructor( var separatorKey = DEFAULT_SEPARATOR get() = "$keysPrefix$field" var keysPrefix = DEFAULT_KEYS_PREFIX - - // Extension Properties - val semver: String - get() = semVersion.semver - val version: String - get() = semVersion.semver - val major: Int - get() = semVersion.major - val minor: Int - get() = semVersion.minor - val patch: Int - get() = semVersion.patch - val preRelease: String - get() = semVersion.preRelease - val buildMeta: String - get() = semVersion.buildMeta - val preReleasePrefix: String - get() = semVersion.preReleasePrefix - val buildMetaPrefix: String - get() = semVersion.buildMetaPrefix - val separator: String - get() = semVersion.separator - - override fun toString(): String { - return "SemverConfig(" + - "properties='$properties', " + - "semverKey='$semverKey', " + - "majorKey='$majorKey', " + - "minorKey='$minorKey', " + - "patchKey='$patchKey', " + - "preReleaseKey='$preReleaseKey', " + - "preReleasePrefixKey='$preReleasePrefixKey', " + - "buildMetaKey='$buildMetaKey', " + - "buildMetaPrefixKey='$buildMetaPrefixKey', " + - "separator='$separatorKey', " + - "keysPrefix='$keysPrefix', " + - "semver='$semver', " + - "major='$major', " + - "minor='$minor', " + - "patch='$patch', " + - "preRelease='$preRelease', " + - "buildMeta='$buildMeta', " + - "preReleasePrefix='$preReleasePrefix', " + - "buildMetaPrefix='$buildMetaPrefix', " + - "separator='$separator'" + - ')' - } -} +} \ No newline at end of file diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementBuildMetaTask.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementBuildMetaTask.kt deleted file mode 100644 index 7463ba0..0000000 --- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementBuildMetaTask.kt +++ /dev/null @@ -1,65 +0,0 @@ -/* - * SemverIncrementBuildMetaTask.kt - * - * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net) - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * Neither the name of this project nor the names of its contributors may be - * used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package net.thauvin.erik.gradle.semver - -import org.gradle.api.DefaultTask -import org.gradle.api.tasks.CacheableTask -import org.gradle.api.tasks.Input -import org.gradle.api.tasks.TaskAction -import javax.inject.Inject - -@CacheableTask -open class SemverIncrementBuildMetaTask @Inject constructor( - private val config: SemverConfig, - private val version: Version -) : DefaultTask() { - init { - group = "version" - description = "Increments Build version metadata." - } - - @Suppress("MemberVisibilityCanBePrivate") - @Input - var buildMeta: String = "" - - @Suppress("unused") - @TaskAction - fun increment() { - if (version.buildMeta != buildMeta) { - version.buildMeta = buildMeta - project.version = version.semver - logger.lifecycle("Version: ${project.version}") - Utils.saveProperties(project.projectDir, config, version) - } - } -} diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt index 9e5af44..a6e676d 100644 --- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt +++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt @@ -1,7 +1,7 @@ /* * SemverIncrementTask.kt * - * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net) + * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,35 +29,33 @@ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - package net.thauvin.erik.gradle.semver +import net.thauvin.erik.gradle.semver.SemverPlugin.Types import org.gradle.api.DefaultTask -import org.gradle.api.tasks.CacheableTask +import org.gradle.api.tasks.Input import org.gradle.api.tasks.TaskAction -import javax.inject.Inject -@CacheableTask -open class SemverIncrementTask @Inject constructor( - private val config: SemverConfig, - private val version: Version, - private val type: String -) : DefaultTask() { +open class SemverIncrementTask : DefaultTask() { init { group = "version" - description = "Increments ${type.capitalize()} version number." } + @Input + lateinit var config: SemverConfig + + @Input + lateinit var version: Version + + @Input + lateinit var type: Types + @Suppress("unused") @TaskAction fun increment() { - version.increment( - isMajor = type == SemverConfig.DEFAULT_MAJOR_KEY, - isMinor = type == SemverConfig.DEFAULT_MINOR_KEY, - isPatch = type == SemverConfig.DEFAULT_PATCH_KEY - ) + version.increment(isMajor = type == Types.MAJOR, isMinor = type == Types.MINOR, isPatch = type == Types.PATCH) project.version = version.semver - logger.lifecycle("Version: ${project.version}") - Utils.saveProperties(project.projectDir, config, version) + logger.warn("Version: ${project.version}") + SemverPlugin.saveProperties(config, version) } -} +} \ No newline at end of file diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt index 1e137e7..cf1143d 100644 --- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt +++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt @@ -1,7 +1,7 @@ /* * SemverPlugin.kt * - * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net) + * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,72 +29,96 @@ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - package net.thauvin.erik.gradle.semver import org.gradle.api.GradleException import org.gradle.api.Plugin import org.gradle.api.Project -import org.gradle.util.GradleVersion +import java.io.File +import java.io.FileInputStream +import java.io.FileOutputStream +import java.util.Properties class SemverPlugin : Plugin { - private val simpleName = SemverPlugin::class.simpleName private var version = Version() private lateinit var config: SemverConfig - override fun apply(project: Project) { - if (GradleVersion.current() < GradleVersion.version("4.8.1")) { - throw GradleException("The $simpleName plugin requires Gradle version 4.8.1 or greater.") - } - config = project.extensions.create("semver", SemverConfig::class.java, version) - project.afterEvaluate(this::afterEvaluate) + enum class Types { + MAJOR, MINOR, PATCH + } - project.tasks.apply { - create("incrementMajor", SemverIncrementTask::class.java, config, version, SemverConfig.DEFAULT_MAJOR_KEY) - create("incrementMinor", SemverIncrementTask::class.java, config, version, SemverConfig.DEFAULT_MINOR_KEY) - create("incrementPatch", SemverIncrementTask::class.java, config, version, SemverConfig.DEFAULT_PATCH_KEY) - create("incrementBuildMeta", SemverIncrementBuildMetaTask::class.java, config, version) + companion object { + fun saveProperties(config: SemverConfig, version: Version) { + Properties().apply { + put(config.majorKey, version.major) + put(config.minorKey, version.minor) + put(config.patchKey, version.patch) + put(config.preReleaseKey, version.preRelease) + put(config.buildMetaKey, version.buildMeta) + if (version.buildMetaPrefix != Version.DEFAULT_BUILDMETA_PREFIX) + put(config.buildMetaPrefixKey, version.buildMetaPrefix) + if (version.preReleasePrefix != Version.DEFAULT_PRERELEASE_PREFIX) + put(config.preReleasePrefixKey, version.preReleasePrefix) + if (version.separator != Version.DEFAULT_SEPARATOR) + put(config.separatorKey, version.separator) + FileOutputStream(config.properties).use { output -> + store(output, "Generated by the Semver Plugin for Gradle") + } + } + } + } + + override fun apply(project: Project?) { + project!!.afterEvaluate(this::afterEvaluate) + config = project.extensions.create("semver", SemverConfig::class.java) + + project.tasks.create("incrementMajor", SemverIncrementTask::class.java) { + description = "Increments Major version number." + config = this@SemverPlugin.config + version = this@SemverPlugin.version + type = Types.MAJOR + } + + project.tasks.create("incrementMinor", SemverIncrementTask::class.java) { + description = "Increments Minor version number." + config = this@SemverPlugin.config + version = this@SemverPlugin.version + type = Types.MINOR + } + + project.tasks.create("incrementPatch", SemverIncrementTask::class.java) { + description = "Increments Patch version number." + config = this@SemverPlugin.config + version = this@SemverPlugin.version + type = Types.PATCH } } private fun afterEvaluate(project: Project) { - val propsFile = Utils.getPropertiesFile(project.projectDir, config.properties) - if (project.version != "unspecified") { - project.logger.warn( - "Please specify the version in ${propsFile.name} and remove it from ${project.buildFile.name}" - ) + project.logger.warn("Please specify the version in ${config.properties} and remove it from ${project.buildFile.name}") } + File(config.properties).apply { - propsFile.apply { - val isNew = !exists() - - project.logger.info( - "[$simpleName] Attempting to read properties from: `$absoluteFile`. " + - "[exists: $isNew, isFile: $isFile, canRead: ${canRead()}]" - ) - - val props = Utils.loadProperties(this) - val requiredProps = setOf( - config.semverKey, config.majorKey, config.minorKey, config.patchKey, - config.preReleaseKey, config.buildMetaKey - ) - val hasReqProps = !isNew && props.stringPropertyNames().containsAll(requiredProps) && - Utils.isNotSystemProperty(requiredProps) - - Utils.loadVersion(config, version, props) - - project.tasks.withType(SemverIncrementBuildMetaTask::class.java) { - buildMeta = version.buildMeta - } - - project.version = version.semver - project.logger.info("[$simpleName] Project version set to: ${project.version}") - - if (!hasReqProps || !isFile) { - project.logger.info("[$simpleName] Saving version properties to `$absoluteFile`.") - Utils.saveProperties(project.projectDir, config, version) + if (canRead()) { + FileInputStream(this).use { fis -> + Properties().apply { + load(fis) + version.major = getProperty(config.majorKey, Version.DEFAULT_MAJOR) + version.minor = getProperty(config.minorKey, Version.DEFAULT_MINOR) + version.patch = getProperty(config.patchKey, Version.DEFAULT_PATCH) + version.preRelease = getProperty(config.preReleaseKey, Version.DEFAULT_EMPTY) + version.preReleasePrefix = getProperty(config.preReleasePrefixKey, Version.DEFAULT_PRERELEASE_PREFIX) + version.buildMeta = getProperty(config.buildMetaKey, Version.DEFAULT_EMPTY) + version.buildMetaPrefix = getProperty(config.buildMetaPrefixKey, Version.DEFAULT_BUILDMETA_PREFIX) + version.separator = getProperty(config.separatorKey, Version.DEFAULT_SEPARATOR) + project.version = version.semver + } + } + } else if (exists()) { + throw GradleException("Unable to read version from ${config.properties}") } + saveProperties(config, version) } } -} +} \ No newline at end of file diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SortedProperties.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SortedProperties.kt deleted file mode 100644 index 1a99d15..0000000 --- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SortedProperties.kt +++ /dev/null @@ -1,48 +0,0 @@ -/* - * SortedProperties.kt - * - * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net) - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * Neither the name of this project nor the names of its contributors may be - * used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package net.thauvin.erik.gradle.semver - -import java.util.Collections -import java.util.Enumeration -import java.util.Properties - -internal class SortedProperties : Properties() { - override val entries: MutableSet> - get() = super.entries.sortedWith(Comparator { a, b -> a.toString().compareTo(b.toString()) }).toMutableSet() - - override fun keys(): Enumeration { - val keys = Collections.list(super.keys()) - keys.sortWith(Comparator { a, b -> a.toString().compareTo(b.toString()) }) - return Collections.enumeration(keys) - } -} diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/Utils.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/Utils.kt deleted file mode 100644 index e7cd681..0000000 --- a/src/main/kotlin/net/thauvin/erik/gradle/semver/Utils.kt +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Utils.kt - * - * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net) - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * Neither the name of this project nor the names of its contributors may be - * used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package net.thauvin.erik.gradle.semver - -import org.gradle.api.GradleException -import java.io.File -import java.io.FileInputStream -import java.io.FileOutputStream -import java.io.IOException -import java.util.Properties - -/** - * The Utils class. - * - * @author Erik C. Thauvin - * @created 2019-04-10 - * @since 1.0 - */ -object Utils { - fun File.canReadFile(): Boolean { - return canRead() && isFile - } - - private fun Properties.put(key: String, value: String, isValidCondition: Boolean) { - if (isValidCondition) put(key, value) - } - - fun isNotSystemProperty(keys: Set): Boolean { - keys.forEach { - if (System.getProperties().containsKey(it)) return false - } - return true - } - - fun getPropertiesFile(projectDir: File, propsFile: String): File { - return if (File(propsFile).isAbsolute) { - File(propsFile) - } else { - File(projectDir, propsFile) - } - } - - fun loadProperties(file: File): Properties { - var isNew = false - val props = Properties() - file.apply { - try { - if (!exists() && createNewFile()) { - isNew = true - } - } catch (e: IOException) { - throw GradleException("Unable to create: `$absoluteFile`", e) - } - if (canReadFile()) { - FileInputStream(this).reader().use { reader -> - props.apply { - if (!isNew) { - load(reader) - } - } - } - } else { - throw GradleException("Unable to read version from: `$absoluteFile`") - } - } - return props - } - - fun loadIntProperty(props: Properties, key: String, default: Int): Int { - try { - return loadProperty(props, key, default.toString()).toInt() - } catch (e: java.lang.NumberFormatException) { - throw GradleException("Unable to parse $key property. (${e.message})", e) - } - } - - fun loadProperty(props: Properties, key: String, default: String): String { - return System.getProperty(key, if (props.isNotEmpty()) props.getProperty(key, default) else default) - } - - fun loadVersion(config: SemverConfig, version: Version, props: Properties) { - props.apply { - if (!parseSemVer(System.getProperty(config.semverKey), version)) { - version.major = loadIntProperty(this, config.majorKey, Version.DEFAULT_MAJOR) - version.minor = loadIntProperty(this, config.minorKey, Version.DEFAULT_MINOR) - version.patch = loadIntProperty(this, config.patchKey, Version.DEFAULT_PATCH) - version.preRelease = loadProperty(this, config.preReleaseKey, Version.DEFAULT_EMPTY) - version.buildMeta = loadProperty(this, config.buildMetaKey, Version.DEFAULT_EMPTY) - } - - if (!isEmpty) { - version.preReleasePrefix = - getProperty(config.preReleasePrefixKey, Version.DEFAULT_PRERELEASE_PREFIX) - version.buildMetaPrefix = - getProperty(config.buildMetaPrefixKey, Version.DEFAULT_BUILDMETA_PREFIX) - version.separator = getProperty(config.separatorKey, Version.DEFAULT_SEPARATOR) - } - } - } - - fun parseSemVer(input: String?, version: Version): Boolean { - if (input.isNullOrBlank()) return false - - try { - val max = 5 - val min = 3 - - val parts = input.split( - Regex("[\\Q${version.separator}${version.preReleasePrefix}${version.buildMetaPrefix}\\E]"), - max - ) - - if (parts.size >= min) { - version.major = parts[0].toInt() - version.minor = parts[1].toInt() - version.patch = parts[2].toInt() - version.preRelease = "" - version.buildMeta = "" - - if (parts.size > min) { - when { - parts.size == max -> { - version.preRelease = parts[3] - version.buildMeta = parts[4] - } - parts.size == 4 -> { - if (input.endsWith(version.buildMetaPrefix + parts[3])) { - version.buildMeta = parts[3] - } else { - version.preRelease = parts[3] - } - } - } - } - } else { - throw NumberFormatException("Not enough parts.") - } - } catch (e: NumberFormatException) { - throw GradleException("Unable to parse version: \"$input\" (${e.message})", e) - } - - return true - } - - fun saveProperties(projectDir: File, config: SemverConfig, version: Version) { - val propsFile = getPropertiesFile(projectDir, config.properties) - SortedProperties().apply { - try { - propsFile.apply { - if (canReadFile()) { - FileInputStream(this).reader().use { load(it) } - } else { - createNewFile() - } - - put(config.semverKey, version.semver) - put(config.majorKey, version.major.toString()) - put(config.minorKey, version.minor.toString()) - put(config.patchKey, version.patch.toString()) - put(config.preReleaseKey, version.preRelease) - put(config.buildMetaKey, version.buildMeta) - put(config.semverKey, version.semver) - - put( - config.buildMetaPrefixKey, version.buildMetaPrefix, - version.buildMetaPrefix != Version.DEFAULT_BUILDMETA_PREFIX || - containsKey(config.buildMetaPrefixKey) - ) - put( - config.preReleasePrefixKey, version.preReleasePrefix, - version.preReleasePrefix != Version.DEFAULT_PRERELEASE_PREFIX || - containsKey(config.preReleasePrefixKey) - ) - put( - config.separatorKey, version.separator, - version.separator != Version.DEFAULT_SEPARATOR || - containsKey(config.separatorKey) - ) - - if (canWrite()) { - FileOutputStream(this).writer().use { - store(it, "Generated by the Semver Plugin for Gradle") - } - } else { - throw IOException("Can't write.") - } - } - } catch (e: IOException) { - throw GradleException("Unable to write version to: `${propsFile.absoluteFile}`", e) - } - } - } -} diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/Version.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/Version.kt index eedbf38..c862f9b 100644 --- a/src/main/kotlin/net/thauvin/erik/gradle/semver/Version.kt +++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/Version.kt @@ -1,7 +1,7 @@ /* * Version.kt * - * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net) + * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,14 +29,13 @@ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - package net.thauvin.erik.gradle.semver class Version { companion object { - const val DEFAULT_MAJOR: Int = 1 - const val DEFAULT_MINOR: Int = 0 - const val DEFAULT_PATCH: Int = 0 + const val DEFAULT_MAJOR: String = "1" + const val DEFAULT_MINOR: String = "0" + const val DEFAULT_PATCH: String = "0" const val DEFAULT_EMPTY: String = "" const val DEFAULT_PRERELEASE_PREFIX = "-" const val DEFAULT_BUILDMETA_PREFIX = "+" @@ -54,32 +53,19 @@ class Version { val semver: String get() = "$major$separator$minor$separator$patch" + - (if (preRelease.isNotEmpty()) "$preReleasePrefix$preRelease" else "") + - (if (buildMeta.isNotEmpty()) "$buildMetaPrefix$buildMeta" else "") + (if (preRelease.isNotEmpty()) "$preReleasePrefix$preRelease" else "") + + (if (buildMeta.isNotEmpty()) "$buildMetaPrefix$buildMeta" else "") fun increment(isMajor: Boolean = false, isMinor: Boolean = false, isPatch: Boolean = false) { if (isMajor) { - major++ + major = (major.toInt() + 1).toString() minor = DEFAULT_MINOR patch = DEFAULT_PATCH } if (isMinor) { - minor++ + minor = (minor.toInt() + 1).toString() patch = DEFAULT_PATCH } - if (isPatch) patch++ - } - - override fun toString(): String { - return "Version(" + - "major='$major', " + - "minor='$minor', " + - "patch='$patch', " + - "preRelease='$preRelease', " + - "preReleasePrefix='$preReleasePrefix', " + - "buildMeta='$buildMeta', " + - "buildMetaPrefix='$buildMetaPrefix', " + - "separator='$separator', " + - ')' + if (isPatch) patch = (patch.toInt() + 1).toString() } } diff --git a/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverConfigSpec.kt b/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverConfigSpec.kt index 45105a0..ef3210c 100644 --- a/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverConfigSpec.kt +++ b/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverConfigSpec.kt @@ -1,7 +1,7 @@ /* * SemverConfigSpec.kt * - * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net) + * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,60 +29,21 @@ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - package net.thauvin.erik.gradle.semver -import org.spekframework.spek2.Spek -import org.spekframework.spek2.style.gherkin.Feature -import kotlin.test.assertEquals +import org.jetbrains.spek.api.Spek +import org.jetbrains.spek.api.dsl.describe +import org.jetbrains.spek.api.dsl.given +import org.jetbrains.spek.api.dsl.it +import org.jetbrains.spek.api.dsl.on import kotlin.test.assertTrue @Suppress("unused") object SemverConfigSpec : Spek({ - Feature("SemverConfig") { - val config = SemverConfig(Version()) - Scenario("Testing configs") { + describe("config test") { + given("a config") { + val config = SemverConfig() val vars = listOf( - config.semverKey, - config.majorKey, - config.minorKey, - config.patchKey, - config.preReleaseKey, - config.preReleasePrefixKey, - config.buildMetaKey, - config.buildMetaPrefixKey, - config.separatorKey - ) - val defaults = listOf( - SemverConfig.DEFAULT_SEMVER_KEY, - SemverConfig.DEFAULT_MAJOR_KEY, - SemverConfig.DEFAULT_MINOR_KEY, - SemverConfig.DEFAULT_PATCH_KEY, - SemverConfig.DEFAULT_PRERELEASE_KEY, - SemverConfig.DEFAULT_PRERELEASE_PREFIX_KEY, - SemverConfig.DEFAULT_BUILDMETA_KEY, - SemverConfig.DEFAULT_BUILDMETA_PREFIX_KEY, - SemverConfig.DEFAULT_SEPARATOR - ) - - When("checking defaults") {} - - defaults.forEachIndexed { i, d -> - Then(" ${vars[i]} should be the same: ${config.keysPrefix}$d") { - assertEquals(vars[i], "${config.keysPrefix}$d") - } - } - - Then("config.properties should be version.properties") { - assertEquals(config.properties, "version.properties") - } - - lateinit var newKeys: List - - When("setting keyPrefix to test.") { - config.keysPrefix = "test." - newKeys = listOf( - config.semverKey, config.majorKey, config.minorKey, config.patchKey, @@ -91,34 +52,42 @@ object SemverConfigSpec : Spek({ config.buildMetaKey, config.buildMetaPrefixKey, config.separatorKey - ) - } - - Then("all config keys should start with test.xxxx") { - newKeys.forEach { k -> - assertTrue(k.startsWith("test."), k) + ) + val defaults = listOf( + SemverConfig.DEFAULT_MAJOR_KEY, + SemverConfig.DEFAULT_MINOR_KEY, + SemverConfig.DEFAULT_PATCH_KEY, + SemverConfig.DEFAULT_PRERELEASE_KEY, + SemverConfig.DEFAULT_PRERELEASE_PREFIX_KEY, + SemverConfig.DEFAULT_BUILDMETA_KEY, + SemverConfig.DEFAULT_BUILDMETA_PREFIX_KEY, + SemverConfig.DEFAULT_SEPARATOR + ) + on("defaults") { + defaults.forEachIndexed { i, d -> + it("should be the same: ${vars[i]}, ${config.keysPrefix}$d") { + assertTrue(vars[i] == "${config.keysPrefix}$d") + } } } + on("set keys to test.xxx") { + config.keysPrefix = "test." + val keys = listOf( + config.majorKey, + config.minorKey, + config.patchKey, + config.preReleaseKey, + config.preReleasePrefixKey, + config.buildMetaKey, + config.buildMetaPrefixKey, + config.separatorKey) - When("checking extension properties") {} - - Then("semver should be defaults") { - val defaultSemver = - "${Version.DEFAULT_MAJOR}${Version.DEFAULT_SEPARATOR}${Version.DEFAULT_MINOR}${Version.DEFAULT_SEPARATOR}${Version.DEFAULT_PATCH}" - assertEquals(config.semver, defaultSemver) - assertEquals( - "${config.major}${config.separator}${config.minor}${config.separator}${config.patch}", - defaultSemver - ) - assertEquals(config.preRelease, Version.DEFAULT_EMPTY) - assertEquals(config.buildMeta, Version.DEFAULT_EMPTY) - assertEquals(config.preReleasePrefix, Version.DEFAULT_PRERELEASE_PREFIX) - assertEquals(config.buildMetaPrefix, Version.DEFAULT_BUILDMETA_PREFIX) - } - - Then("semver = version") { - assertEquals(config.semver, config.version) + keys.forEach { k -> + it("should all start with test.xxx: $k") { + assertTrue(k.startsWith("test.")) + } + } } } } -}) +}) \ No newline at end of file diff --git a/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverVersionSpec.kt b/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverVersionSpec.kt index 3dc5f1e..5555b3f 100644 --- a/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverVersionSpec.kt +++ b/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverVersionSpec.kt @@ -1,7 +1,7 @@ /* * SemverVersionSpec.kt * - * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net) + * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,175 +29,94 @@ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - package net.thauvin.erik.gradle.semver -import org.spekframework.spek2.Spek -import org.spekframework.spek2.style.gherkin.Feature +import org.jetbrains.spek.api.Spek +import org.jetbrains.spek.api.dsl.describe +import org.jetbrains.spek.api.dsl.given +import org.jetbrains.spek.api.dsl.it +import org.jetbrains.spek.api.dsl.on import kotlin.test.assertEquals @Suppress("unused") object SemverVersionSpec : Spek({ - Feature("SemverVersion") { - val version = Version() - Scenario("Testing Versions") { - When("validating default version") {} - - Then("major should be 1") { - assertEquals(1, version.major) - } - - Then("minor should be 1") { - assertEquals(0, version.minor) - } - - Then("patch should be 0") { - assertEquals(0, version.patch) - } - - Then("prerelease should be empty") { - assertEquals("", version.preRelease) - } - - Then("meta should be empty") { - assertEquals("", version.buildMeta) - } - - Then("preRelease prefix should be -") { - assertEquals("-", version.preReleasePrefix) - } - - Then("meta prefix should be +") { - assertEquals("+", version.buildMetaPrefix) - } - - Then("separator should be .") { - assertEquals(".", version.separator) - } - - Then("version should be 1.0.0") { - assertEquals("1.0.0", version.semver) - } - - When("incrementing major") { + describe("version test") { + given("a version") { + val version = Version() + on("increment major") { version.increment(isMajor = true) + it("should return 2.0.0") { + assertEquals("2.0.0", version.semver) + } } - - Then("should return 2.0.0") { - assertEquals("2.0.0", version.semver) - } - - When("incrementing minor") { + on("increment minor") { version.increment(isMinor = true) + it("should return 2.1.0") { + assertEquals("2.1.0", version.semver) + } } - - Then("should return 2.1.0") { - assertEquals("2.1.0", version.semver) - } - - When("incrementing patch") { + on("increment patch") { version.increment(isPatch = true) + it("should return 2.1.1") { + assertEquals("2.1.1", version.semver) + } } - - Then("should return 2.1.1") { - assertEquals("2.1.1", version.semver) - } - - When("incrementing minor again") { + on("increment patch") { version.increment(isMinor = true) + it("should return 2.1.0") { + assertEquals("2.1.0", version.semver) + } } - - Then("should return 2.2.0") { - assertEquals("2.2.0", version.semver) - } - - When("incrementing major again") { + on("increment patch") { version.increment(isMajor = true) + it("should return 3.0.0") { + assertEquals("3.0.0", version.semver) + } } - - Then("should return 3.0.0") { - assertEquals("3.0.0", version.semver) + on("increment all") { + version.increment(true, true, true) + it("should return 3.1.1") { + assertEquals("3.1.1", version.semver) + } } - - When("incrementing all") { - version.increment(isMajor = true, isMinor = true, isPatch = true) + on("reset version") { + version.major = "1" + version.minor = "0" + version.patch = "0" + it("should return 1.0.0") { + assertEquals("1.0.0", version.semver) + } } - - Then("should return 4.1.1") { - assertEquals("4.1.1", version.semver) - } - - When("incrementing major and minor") { - version.increment(isMajor = true, isMinor = true) - } - - Then("should return 5.1.0") { - assertEquals("5.1.0", version.semver) - } - - When("incrementing minor and patch") { - version.increment(isMinor = true, isPatch = true) - } - Then("should return 5.2.1") { - assertEquals("5.2.1", version.semver) - } - - When("incrementing nothing") { - version.increment() - } - Then("should still return 5.2.1") { - assertEquals("5.2.1", version.semver) - } - - When("resetting version") { - version.major = 1 - version.minor = 0 - version.patch = 0 - } - - Then("should return 1.0.0") { - assertEquals("1.0.0", version.semver) - } - - When("adding prerelease") { + on("add prerelease") { version.preRelease = "beta" + it("should return 1.0.0-beta") { + assertEquals("1.0.0-beta", version.semver) + } } - - Then("should return 1.0.0-beta") { - assertEquals("1.0.0-beta", version.semver) - } - - When("adding metadata") { + on("add metadata") { version.buildMeta = "007" + it("should return 1.0.0-beta+007") { + assertEquals("1.0.0-beta+007", version.semver) + } } - - Then("should return 1.0.0-beta+007") { - assertEquals("1.0.0-beta+007", version.semver) - } - - When("changing prerelease prefix") { + on("change prerelease prefix") { version.preReleasePrefix = "--" + it("should return 1.0.0--beta+007") { + assertEquals("1.0.0--beta+007", version.semver) + } } - - Then("should return 1.0.0--beta+007") { - assertEquals("1.0.0--beta+007", version.semver) - } - - When("changing meta prefix") { + on("change prerelease prefix") { version.buildMetaPrefix = "++" + it("should return 1.0.0--beta+=007") { + assertEquals("1.0.0--beta++007", version.semver) + } } - - Then("should return 1.0.0--beta++007") { - assertEquals("1.0.0--beta++007", version.semver) - } - - When("changing separator") { + on("change sperator") { version.separator = "-" - } - - Then("should return 1-0-0--beta++007") { - assertEquals("1-0-0--beta++007", version.semver) + it("should return 1-0-0--beta+007") { + assertEquals("1-0-0--beta+007", version.semver) + } } } } -}) +}) \ No newline at end of file diff --git a/src/test/kotlin/net/thauvin/erik/gradle/semver/UtilsSpec.kt b/src/test/kotlin/net/thauvin/erik/gradle/semver/UtilsSpec.kt deleted file mode 100644 index 3ad050f..0000000 --- a/src/test/kotlin/net/thauvin/erik/gradle/semver/UtilsSpec.kt +++ /dev/null @@ -1,269 +0,0 @@ -/* - * UtilsSpec.kt - * - * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net) - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * Neither the name of this project nor the names of its contributors may be - * used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package net.thauvin.erik.gradle.semver - -import net.thauvin.erik.gradle.semver.Utils.canReadFile -import org.gradle.api.GradleException -import org.spekframework.spek2.Spek -import org.spekframework.spek2.style.gherkin.Feature -import java.io.File -import java.util.* -import kotlin.test.assertEquals -import kotlin.test.assertFailsWith -import kotlin.test.assertNull -import kotlin.test.assertTrue - -@Suppress("unused") -object UtilsSpec : Spek( - { - Feature("Utils") { - val version = Version() - val config = SemverConfig(version) - val propsFile = File("test.properties") - val projectDir = File("./") - lateinit var props: Properties - - Scenario("Save/Load Properties") { - When("saving the property") { - config.properties = propsFile.name - Utils.saveProperties(projectDir, config, version) - } - - Then("properties file should exists and be readable") { - assertEquals(propsFile.canReadFile(), propsFile.canRead() && propsFile.isFile) - } - - When("loading the properties file") { - props = Utils.loadProperties(propsFile) - propsFile.delete() - } - - Then("version and properties should be the same.") { - assertEquals(props.getProperty(config.majorKey), version.major.toString(), "Major") - assertEquals(props.getProperty(config.minorKey), version.minor.toString(), "Minor") - assertEquals(props.getProperty(config.patchKey), version.patch.toString(), "Patch") - assertEquals(props.getProperty(config.preReleaseKey), version.preRelease, "PreRelease") - assertNull(props.getProperty(config.preReleasePrefixKey), "PreRelease Prefix") - assertEquals(props.getProperty(config.buildMetaKey), version.buildMeta, "Build Meta") - assertNull(props.getProperty(config.buildMetaPrefixKey), "Build Meta Prefix") - assertNull(props.getProperty(config.separatorKey), "Separator") - assertEquals(props.getProperty(config.semverKey), version.semver, "semver") - } - } - - Scenario("System Properties") { - lateinit var sysProps: Array> - - Given("new system properties") { - sysProps = arrayOf( - Pair(config.majorKey, "2"), - Pair(config.minorKey, "1"), - Pair(config.patchKey, "1"), - Pair(config.preReleaseKey, "beta"), - Pair(config.buildMetaKey, "007") - ) - } - - Then("none should already exists") { - assertTrue( - Utils.isNotSystemProperty( - setOf( - config.majorKey, - config.minorKey, - config.patchKey, - config.preReleaseKey, - config.buildMetaKey - ) - ) - ) - } - - Then("version should match system properties") { - sysProps.forEach { - System.getProperties().setProperty(it.first, it.second) - if (it.first == config.majorKey || it.first == config.minorKey || it.first == config.patchKey) { - assertEquals(Utils.loadIntProperty(props, it.first, -1), it.second.toInt()) - } else { - assertEquals(Utils.loadProperty(props, it.first, ""), it.second) - } - } - } - - When("loading version") { - Utils.loadVersion(config, version, props) - } - - Then("version should be identical") { - assertEquals(version.semver, "2.1.1-beta+007") - } - - When("saving properties") { - Utils.saveProperties(projectDir, config, version) - } - - lateinit var newProps: Properties - - And("loading properties file") { - newProps = Utils.loadProperties(propsFile) - } - - Then("new properties should validate") { - sysProps.forEach { - assertEquals(newProps.getProperty(it.first), it.second, it.second) - } - propsFile.delete() - } - - When("setting the version as system property") { - System.getProperties().setProperty(config.semverKey, "3.2.2") - } - - And("loading the properties") { - Utils.loadVersion(config, version, props) - } - - Then("versions should match") { - assertEquals(version.semver, System.getProperty(config.semverKey)) - } - } - - Scenario("Version Parsing") { - When("validating version parsing") {} - - Then("versions should parse") { - listOf( - "1.0.0", - "2.1.0-beta", - "3.2.1-beta+007", - "4.3.2+007", - "11.11.1", - "111.11.11-beta", - "1111.111.11-beta+001.12" - ).forEach { - assertTrue(Utils.parseSemVer(it, version), "parsing semver: $it") - assertEquals(it, version.semver, it) - } - } - - Then("should throw exceptions") { - assertFailsWith("2.1.1a") { - Utils.parseSemVer("2.1.1a", version) - } - assertFailsWith("2a.1.1") { - Utils.parseSemVer("2a.1.1", version) - } - assertFailsWith("2.1a.1") { - Utils.parseSemVer("2.1a.1", version) - } - assertFailsWith("2.1") { - Utils.parseSemVer("2.1", version) - } - } - - Given("new prefixes") { - version.preReleasePrefix = "." - version.buildMetaPrefix = "." - } - - Then("prefixes should parse") { - listOf("2.1.0.beta.1", "2.1.1.1", "3.2.1.beta.1.007").forEach { - assertTrue(Utils.parseSemVer(it, version), "parsing semver: $it") - assertEquals(it, version.semver, it) - } - } - - Then("last pre-release and meta should match") { - assertEquals(version.preRelease, "beta") - assertEquals(version.buildMeta, "1.007") - } - } - - Scenario("Load locked properties") { - lateinit var locked: File - - Given("the locked location") { - locked = File("locked") - } - - Then("loading locked properties") { - assertFailsWith { - Utils.loadProperties(File(locked, propsFile.name)) - } - locked.delete() - } - } - - Scenario("Save to locked properties") { - lateinit var propsLocked: File - Given("the locked properties") { - propsLocked = File(System.getProperty("user.home") + File.separator + "locked.properties") - propsLocked.createNewFile() - propsLocked.setReadOnly() - config.properties = propsLocked.name - } - - Then("saving the locked properties file") { - assertFailsWith { - Utils.saveProperties(propsLocked.parentFile, config, version) - } - propsLocked.delete() - } - } - - Scenario("Save/Load Properties in foo") { - lateinit var fooDir: File - lateinit var fooProps: File - When("saving the foo property") { - fooDir = File("foo") - fooDir.mkdir() - fooProps = File(fooDir, propsFile.name) - config.properties = fooProps.absolutePath - Utils.saveProperties(projectDir, config, version) - } - - Then("foo properties file should exists and be readable") { - assertEquals(fooProps.canReadFile(), fooProps.canRead() && fooProps.isFile) - } - - When("loading the foo properties file") { - props = Utils.loadProperties(fooProps) - fooProps.delete() - fooDir.delete() - } - - Then("version in foo properties should be the same") { - assertEquals(props.getProperty(config.semverKey), version.semver) - } - } - } - } -) diff --git a/updatewrappers.sh b/updatewrappers.sh deleted file mode 100644 index e98cca5..0000000 --- a/updatewrappers.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash - - -# -# Version: 1.0.2 -# - -# set the examples directories -declare -a dirs=( - "${PWD##*/}" - "examples/java" - "examples/kotlin" - "examples/annotation-processor/java" - "examples/annotation-processor/kotlin") -java8=true - -### - -pwd=$PWD -cyan=$(tput setaf 6) -green=$(tput setaf 2) -red=$(tput setaf 1) -std=$(tput sgr0) - -if [ "$java8" = true ] -then - export JAVA_HOME="$JAVA8_HOME" - export PATH="$(cygpath "$JAVA_HOME")/bin:$PATH" -fi - -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 -e "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" -ne 0 ]; then - cd "${dirs[d]}" || exit 1 - fi - echo -e " ${cyan}${dirs[d]}${std}" - updateWrappers - cd "$pwd" -done