From 69bf1424bd55e258566faf6edc4ea05a5f15a5a9 Mon Sep 17 00:00:00 2001 From: Dario Rodriguez Gonzalez Date: Wed, 16 Oct 2019 13:54:22 +0200 Subject: [PATCH 1/4] Added commands to install&update devon4node and cicdgen --- .../main/resources/scripts/command/cicdgen | 52 +++++++++++++++++++ .../main/resources/scripts/command/devon4node | 52 +++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 scripts/src/main/resources/scripts/command/cicdgen create mode 100644 scripts/src/main/resources/scripts/command/devon4node diff --git a/scripts/src/main/resources/scripts/command/cicdgen b/scripts/src/main/resources/scripts/command/cicdgen new file mode 100644 index 000000000..8ed71f087 --- /dev/null +++ b/scripts/src/main/resources/scripts/command/cicdgen @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +# shellcheck source=scripts/functions +source "$(dirname "${0}")"/../functions + +# $1: optional setup +function doSetup() { + if command -v cicdgen &> /dev/null + then + if [ "${1}" != "update" ] + then + echo "cicdgen is already installed at $(command -v cicdgen)" + exit + fi + fi + + doDevonCommand npm -q setup + local npm_command="${DEVON_IDE_HOME}/software/node/npm" + if [ ! -x "${npm_command}" ] + then + npm_command="${DEVON_IDE_HOME}/software/node/bin/npm" + fi + doRunCommand "'${npm_command}' install -g @devonfw/cicdgen@latest" "install cicdgen" +} + +function printCicdgenHelp() { + echo "Setup or update cicdgen CLI." + echo + echo "Arguments:" + echo "setup setup cicdgen (install and verify)" + echo "update update cicdgen (reinstall with @latest version and verify)" + echo "«args» call cicdgen with the specified arguments" + echo + echo "Options:" + exit +} + +#CLI +if [ "${1}" = "-h" ] || [ "${1}" = "help" ] +then + printCicdgenHelp +fi + +if [ -z "${1}" ] || [ "${1}" = "setup" ] +then + doSetup setup +elif [ "${1}" = "update" ] +then + doSetup update +else + doSetup + cicdgen "${@}" +fi \ No newline at end of file diff --git a/scripts/src/main/resources/scripts/command/devon4node b/scripts/src/main/resources/scripts/command/devon4node new file mode 100644 index 000000000..a3545bb24 --- /dev/null +++ b/scripts/src/main/resources/scripts/command/devon4node @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +# shellcheck source=scripts/functions +source "$(dirname "${0}")"/../functions + +# $1: optional setup +function doSetup() { + if command -v devon4node &> /dev/null + then + if [ "${1}" != "update" ] + then + echo "devon4node is already installed at $(command -v devon4node)" + exit + fi + fi + + doDevonCommand npm -q setup + local npm_command="${DEVON_IDE_HOME}/software/node/npm" + if [ ! -x "${npm_command}" ] + then + npm_command="${DEVON_IDE_HOME}/software/node/bin/npm" + fi + doRunCommand "'${npm_command}' install -g @devon4node/devon4node@latest" "install devon4node" +} + +function printDevon4nodeHelp() { + echo "Setup or update devon4node CLI." + echo + echo "Arguments:" + echo "setup setup devon4node (install and verify)" + echo "update update devon4node (reinstall with @latest version and verify)" + echo "«args» call devon4node with the specified arguments" + echo + echo "Options:" + exit +} + +#CLI +if [ "${1}" = "-h" ] || [ "${1}" = "help" ] +then + printDevon4nodeHelp +fi + +if [ -z "${1}" ] || [ "${1}" = "setup" ] +then + doSetup setup +elif [ "${1}" = "update" ] +then + doSetup update +else + doSetup + devon4node "${@}" +fi \ No newline at end of file From 5d2a6ca5169508b26049d529ff92c22d2c948464 Mon Sep 17 00:00:00 2001 From: Dario Rodriguez Gonzalez Date: Thu, 24 Oct 2019 11:07:05 +0200 Subject: [PATCH 2/4] Modified node and cicdgen commands. Updated documentation for those commands --- documentation/cicdgen.asciidoc | 19 ++++++ documentation/node.asciidoc | 4 ++ .../main/resources/scripts/command/cicdgen | 38 +++++++++--- .../main/resources/scripts/command/devon4node | 52 ---------------- .../src/main/resources/scripts/command/node | 62 ++++++++++++++----- 5 files changed, 99 insertions(+), 76 deletions(-) create mode 100644 documentation/cicdgen.asciidoc delete mode 100644 scripts/src/main/resources/scripts/command/devon4node diff --git a/documentation/cicdgen.asciidoc b/documentation/cicdgen.asciidoc new file mode 100644 index 000000000..a9a7f3637 --- /dev/null +++ b/documentation/cicdgen.asciidoc @@ -0,0 +1,19 @@ +:toc: +toc::[] + += cicdgen + +The `cicdgen` commandlet allows to install and setup https://github.com/devonfw/cicdgen[cicdgen]. +The arguments (`devon cicdgen «args»`) are explained by the following table: + +.Usage of `devon cicdgen` +[options="header"] +|======================= +|*Argument(s)* |*Meaning* +|`setup` |setup cicdgen (install and verify) +|`update` |update cicdgen (reinstall with @latest version and verify) +|`java «args»` |generate cicd files for the currect devon4java project +|`ng «args»` |generate cicd files for the currect devon4ng project +|`node «args»` |generate cicd files for the currect devon4node project +|`«args»` |call cicdgen with the specified arguments +|======================= \ No newline at end of file diff --git a/documentation/node.asciidoc b/documentation/node.asciidoc index b0c59a76a..1625e40f7 100644 --- a/documentation/node.asciidoc +++ b/documentation/node.asciidoc @@ -11,4 +11,8 @@ The arguments (`devon node «args»`) are explained by the following table: |======================= |*Argument(s)* |*Meaning* |`setup` |setup node.js (install and verify), link:configuration.asciidoc[configurable] via `NODE_VERSION` +|`create «name» [«args»]` | create a new devon4node application `(same as devon4node new)` +|`generate «s» [«args»]` | generate devon4node components using the schematic «s» `(same as devon4node generate)` +|`db «c» [«args»]` | execute a TypeORM command «c» `(same as devon4node db)` +|`«args»` | call NodeJS with the specified arguments |======================= diff --git a/scripts/src/main/resources/scripts/command/cicdgen b/scripts/src/main/resources/scripts/command/cicdgen index 8ed71f087..145e956f8 100644 --- a/scripts/src/main/resources/scripts/command/cicdgen +++ b/scripts/src/main/resources/scripts/command/cicdgen @@ -28,6 +28,9 @@ function printCicdgenHelp() { echo "Arguments:" echo "setup setup cicdgen (install and verify)" echo "update update cicdgen (reinstall with @latest version and verify)" + echo "java [«args»] generate cicd files for the currect devon4java project: $PWD" + echo "ng [«args»] generate cicd files for the currect devon4ng project: $PWD" + echo "node [«args»] generate cicd files for the currect devon4node project: $PWD" echo "«args» call cicdgen with the specified arguments" echo echo "Options:" @@ -35,18 +38,33 @@ function printCicdgenHelp() { } #CLI -if [ "${1}" = "-h" ] || [ "${1}" = "help" ] -then +case ${1} in +"help" | "-h") printCicdgenHelp -fi - -if [ -z "${1}" ] || [ "${1}" = "setup" ] -then +;; +"setup" | "s") doSetup setup -elif [ "${1}" = "update" ] -then +;; +"update") doSetup update -else +;; +"java") + shift + doSetup + cicdgen generate devon4j "${@}" +;; +"ng") + shift + doSetup + cicdgen generate devon4ng "${@}" +;; +"node") + shift + doSetup + cicdgen generate devon4node "${@}" +;; +*) doSetup cicdgen "${@}" -fi \ No newline at end of file +;; +esac \ No newline at end of file diff --git a/scripts/src/main/resources/scripts/command/devon4node b/scripts/src/main/resources/scripts/command/devon4node deleted file mode 100644 index a3545bb24..000000000 --- a/scripts/src/main/resources/scripts/command/devon4node +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash -# shellcheck source=scripts/functions -source "$(dirname "${0}")"/../functions - -# $1: optional setup -function doSetup() { - if command -v devon4node &> /dev/null - then - if [ "${1}" != "update" ] - then - echo "devon4node is already installed at $(command -v devon4node)" - exit - fi - fi - - doDevonCommand npm -q setup - local npm_command="${DEVON_IDE_HOME}/software/node/npm" - if [ ! -x "${npm_command}" ] - then - npm_command="${DEVON_IDE_HOME}/software/node/bin/npm" - fi - doRunCommand "'${npm_command}' install -g @devon4node/devon4node@latest" "install devon4node" -} - -function printDevon4nodeHelp() { - echo "Setup or update devon4node CLI." - echo - echo "Arguments:" - echo "setup setup devon4node (install and verify)" - echo "update update devon4node (reinstall with @latest version and verify)" - echo "«args» call devon4node with the specified arguments" - echo - echo "Options:" - exit -} - -#CLI -if [ "${1}" = "-h" ] || [ "${1}" = "help" ] -then - printDevon4nodeHelp -fi - -if [ -z "${1}" ] || [ "${1}" = "setup" ] -then - doSetup setup -elif [ "${1}" = "update" ] -then - doSetup update -else - doSetup - devon4node "${@}" -fi \ No newline at end of file diff --git a/scripts/src/main/resources/scripts/command/node b/scripts/src/main/resources/scripts/command/node index 763950a1b..e9bda3f6a 100755 --- a/scripts/src/main/resources/scripts/command/node +++ b/scripts/src/main/resources/scripts/command/node @@ -31,6 +31,27 @@ function doSetup() { fi } +function doSetupDevon4node() { + if command -v devon4node &> /dev/null + then + if [ -n "${1}" ] + then + echo "devon4node is already installed at $(command -v devon4node)" + exit + fi + else + doDevonCommand npm -q setup + local npm_command="${DEVON_IDE_HOME}/software/node/npm" + if [ ! -x "${npm_command}" ] + then + npm_command="${DEVON_IDE_HOME}/software/node/bin/npm" + fi + doDevonCommand npm -q setup + doDevonCommand yarn -q setup + doRunCommand "'${npm_command}' install -g @devon4node/cli@latest" "install devon4node" + fi +} + function doRun() { doSetup doEcho "Running: node ${*}" @@ -48,24 +69,37 @@ then fi #CLI -if [ "${1}" = "-h" ] || [ "${1}" = "help" ] -then - echo "Setup or run yarn." +case ${1} in +"help" | "-h") + echo "Setup or run NodeJS." echo echo "Arguments:" - echo " setup setup angular-cli (install and verify)" - echo " get-version get the current project version" - echo " set-version «nv» [«cv»] set the current project version to new version «nv» (assuming current version is «cv»)" - echo " check-top-level-project check if we are running on a top-level project or fail if in a module or no maven project at all" - echo " release start a clean deploy release build" - echo " «args» call maven with the specified arguments" + echo " setup setup NodeJS (install and verify)" + echo " create «name» [«args»] create a new devon4node application (same as devon4node new)" + echo " generate «s» [«args»] generate devon4node components using the schematic «s» (same as devon4node generate)" + echo " db «c» [«args»] execute a TypeORM command «c» (same as devon4node db)" + echo " «args» call NodeJS with the specified arguments" echo echo "Options:" exit -fi -if [ "${1}" = "setup" ] -then +;; +"setup" | "s") doSetup setup -else +;; +"create" | "c") + shift + doSetupDevon4node + devon4node new "${*}" +;; +"generate" | "g") + doSetupDevon4node + devon4node "${*}" +;; +"db") + doSetupDevon4node + devon4node "${*}" +;; +*) doRun "${*}" -fi +;; +esac \ No newline at end of file From ffde3392407cbed953a5c2f199cb18f4501a6079 Mon Sep 17 00:00:00 2001 From: Dario Rodriguez Gonzalez Date: Thu, 24 Oct 2019 12:16:42 +0200 Subject: [PATCH 3/4] Solved problems in node command --- scripts/src/main/resources/scripts/command/node | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/src/main/resources/scripts/command/node b/scripts/src/main/resources/scripts/command/node index e9bda3f6a..c309dc45c 100755 --- a/scripts/src/main/resources/scripts/command/node +++ b/scripts/src/main/resources/scripts/command/node @@ -34,7 +34,7 @@ function doSetup() { function doSetupDevon4node() { if command -v devon4node &> /dev/null then - if [ -n "${1}" ] + if [ -z "${1}" ] then echo "devon4node is already installed at $(command -v devon4node)" exit @@ -88,16 +88,16 @@ case ${1} in ;; "create" | "c") shift - doSetupDevon4node - devon4node new "${*}" + doSetupDevon4node setup + devon4node new "${@}" ;; "generate" | "g") - doSetupDevon4node - devon4node "${*}" + doSetupDevon4node setup + devon4node "${@}" ;; "db") - doSetupDevon4node - devon4node "${*}" + doSetupDevon4node setup + devon4node "${@}" ;; *) doRun "${*}" From e3d6abbd642b8eaac790106768221b7c8f75014f Mon Sep 17 00:00:00 2001 From: Dario Rodriguez Gonzalez Date: Mon, 28 Oct 2019 10:16:26 +0100 Subject: [PATCH 4/4] Added cicd to java, ng, node commands --- documentation/java.asciidoc | 1 + documentation/master-ide.asciidoc | 70 +++++++++---------- documentation/ng.asciidoc | 1 + documentation/node.asciidoc | 1 + .../main/resources/scripts/command/cicdgen | 38 +++++----- .../src/main/resources/scripts/command/java | 5 ++ scripts/src/main/resources/scripts/command/ng | 5 ++ .../src/main/resources/scripts/command/node | 28 +++----- 8 files changed, 78 insertions(+), 71 deletions(-) diff --git a/documentation/java.asciidoc b/documentation/java.asciidoc index 70224f0ac..f619bac02 100644 --- a/documentation/java.asciidoc +++ b/documentation/java.asciidoc @@ -13,6 +13,7 @@ The arguments (`devon java «args»`) are explained by the following table: |`setup` |setup OpenJDK (install or update and verify), link:configuration.asciidoc[configurable] via `JAVA_VERSION` (e.g. `8u222b10` or `11.0.4_11`) |`create «args»` |create a new Java project based on https://github.com/devonfw/devon4j/blob/develop/documentation/tutorial-newapp.asciidoc[devon4j application template]. If a single argument is provided, this is the package name and is automatically split into groupId and artifactId. Use `-DdbType=«db»` to choose the database (hana, oracle, mssql, postgresql, mariadb, mysql, h2, hsqldb). Any option starting with dash is passed as is." |`migrate [from «version»] [single]` |migrate a https://github.com/devonfw/devon4j[devon4j] project to the latest version. If for some reasons the current devonfw version (e.g. oasp4j:2.6.0) can not be auto-detected you may provide it manually after the 'from' argument. Also the 'single' option allows to migrate only to the next available version." +|`cicd «args»` |generate cicd files for the currect devon4java project |======================= == create diff --git a/documentation/master-ide.asciidoc b/documentation/master-ide.asciidoc index d1d4c1d83..adcb274cd 100644 --- a/documentation/master-ide.asciidoc +++ b/documentation/master-ide.asciidoc @@ -1,35 +1,35 @@ -= devonfw ide - -== Integrated Development Environment - -include::Home[leveloffset=2] - -include::features[leveloffset=2] - -include::setup[leveloffset=2] - -include::usage[leveloffset=2] - -include::license[leveloffset=2] - -include::structure[leveloffset=2] - -include::cli[leveloffset=2] - -include::variables[leveloffset=2] - -include::configuration[leveloffset=2] - -include::scripts[leveloffset=2] - -include::settings[leveloffset=2] - -include::software[leveloffset=2] - -include::integration[leveloffset=2] - -include::advanced-tooling[leveloffset=2] - -include::eclipse-plugins[leveloffset=2] - - += devonfw ide + +== Integrated Development Environment + +include::Home[leveloffset=2] + +include::features[leveloffset=2] + +include::setup[leveloffset=2] + +include::usage[leveloffset=2] + +include::license[leveloffset=2] + +include::structure[leveloffset=2] + +include::cli[leveloffset=2] + +include::variables[leveloffset=2] + +include::configuration[leveloffset=2] + +include::scripts[leveloffset=2] + +include::settings[leveloffset=2] + +include::software[leveloffset=2] + +include::integration[leveloffset=2] + +include::advanced-tooling[leveloffset=2] + +include::eclipse-plugins[leveloffset=2] + + diff --git a/documentation/ng.asciidoc b/documentation/ng.asciidoc index 7c1627181..2ac130f61 100644 --- a/documentation/ng.asciidoc +++ b/documentation/ng.asciidoc @@ -13,5 +13,6 @@ The arguments (`devon ng «args»`) are explained by the following table: |*Argument(s)* |*Meaning* |`setup` |setup yarn (install and verify), link:configuration.asciidoc[configurable] via `YARN_VERSION` |`create` |Create a new https://github.com/devonfw/devon4ng/#devon4ng[devon4ng] project. +|`cicd «args»` |generate cicd files for the currect devon4ng project |`«args»` |run ng with the given arguments (`«args»`) |======================= diff --git a/documentation/node.asciidoc b/documentation/node.asciidoc index 1625e40f7..d36909d3a 100644 --- a/documentation/node.asciidoc +++ b/documentation/node.asciidoc @@ -14,5 +14,6 @@ The arguments (`devon node «args»`) are explained by the following table: |`create «name» [«args»]` | create a new devon4node application `(same as devon4node new)` |`generate «s» [«args»]` | generate devon4node components using the schematic «s» `(same as devon4node generate)` |`db «c» [«args»]` | execute a TypeORM command «c» `(same as devon4node db)` +|`cicd «args»` |generate cicd files for the currect devon4node project |`«args»` | call NodeJS with the specified arguments |======================= diff --git a/scripts/src/main/resources/scripts/command/cicdgen b/scripts/src/main/resources/scripts/command/cicdgen index 145e956f8..900ffb8fa 100644 --- a/scripts/src/main/resources/scripts/command/cicdgen +++ b/scripts/src/main/resources/scripts/command/cicdgen @@ -4,22 +4,27 @@ source "$(dirname "${0}")"/../functions # $1: optional setup function doSetup() { - if command -v cicdgen &> /dev/null + if command -v cicdgen &> /dev/null || [ "${1}" != "update" ] then - if [ "${1}" != "update" ] + if [ "${1}" = "setup" ] then echo "cicdgen is already installed at $(command -v cicdgen)" exit fi + else + doDevonCommand npm -q setup + local npm_command="${DEVON_IDE_HOME}/software/node/npm" + if [ ! -x "${npm_command}" ] + then + npm_command="${DEVON_IDE_HOME}/software/node/bin/npm" + fi + doRunCommand "'${npm_command}' install -g @devonfw/cicdgen@latest" "install cicdgen" fi +} - doDevonCommand npm -q setup - local npm_command="${DEVON_IDE_HOME}/software/node/npm" - if [ ! -x "${npm_command}" ] - then - npm_command="${DEVON_IDE_HOME}/software/node/bin/npm" - fi - doRunCommand "'${npm_command}' install -g @devonfw/cicdgen@latest" "install cicdgen" +doRunCicdgen() { + doSetup + cicdgen generate "${@}" } function printCicdgenHelp() { @@ -28,9 +33,9 @@ function printCicdgenHelp() { echo "Arguments:" echo "setup setup cicdgen (install and verify)" echo "update update cicdgen (reinstall with @latest version and verify)" - echo "java [«args»] generate cicd files for the currect devon4java project: $PWD" - echo "ng [«args»] generate cicd files for the currect devon4ng project: $PWD" - echo "node [«args»] generate cicd files for the currect devon4node project: $PWD" + echo "java «args» generate cicd files for the currect devon4java project: $PWD" + echo "ng «args» generate cicd files for the currect devon4ng project: $PWD" + echo "node «args» generate cicd files for the currect devon4node project: $PWD" echo "«args» call cicdgen with the specified arguments" echo echo "Options:" @@ -50,18 +55,15 @@ case ${1} in ;; "java") shift - doSetup - cicdgen generate devon4j "${@}" + doRunCicdgen devon4j "${@}" ;; "ng") shift - doSetup - cicdgen generate devon4ng "${@}" + doRunCicdgen devon4ng "${@}" ;; "node") shift - doSetup - cicdgen generate devon4node "${@}" + doRunCicdgen devon4node "${@}" ;; *) doSetup diff --git a/scripts/src/main/resources/scripts/command/java b/scripts/src/main/resources/scripts/command/java index 109763dda..65397fed1 100755 --- a/scripts/src/main/resources/scripts/command/java +++ b/scripts/src/main/resources/scripts/command/java @@ -69,6 +69,7 @@ then echo " the current devonfw version (e.g. oasp4j:2.6.0) can not be auto-detected you may provide" echo " it manually after the 'from' argument. Also the 'single' option allows to migrate only to" echo " the next available version." + echo " cicd «args» generate cicd files for the currect project: $PWD" echo echo "Options:" elif [ -z "${1}" ] || [ "${1}" = "setup" ] @@ -83,6 +84,10 @@ elif [ "${1}" = "migrate" ] then shift doMigrate "${@}" +elif [ "${1}" = "cicd" ] +then + shift + doDevonCommand cicdgen java "${*}" else doFail "Unknown argument ${1}" fi diff --git a/scripts/src/main/resources/scripts/command/ng b/scripts/src/main/resources/scripts/command/ng index 9fb5cbd7c..182fe7aa1 100755 --- a/scripts/src/main/resources/scripts/command/ng +++ b/scripts/src/main/resources/scripts/command/ng @@ -28,6 +28,7 @@ then echo echo "Arguments:" echo "setup setup angular-cli (install and verify)" + echo "cicd «args» generate cicd files for the currect devon4ng project: $PWD" echo "«args» call maven with the specified arguments" echo echo "Options:" @@ -42,6 +43,10 @@ then shift doSetup ng new "${@}" +elif [ "${1}" = "cicd" ] +then + shift + doDevonCommand cicdgen ng "${*}" else doSetup ng "${@}" diff --git a/scripts/src/main/resources/scripts/command/node b/scripts/src/main/resources/scripts/command/node index c309dc45c..4b8449c68 100755 --- a/scripts/src/main/resources/scripts/command/node +++ b/scripts/src/main/resources/scripts/command/node @@ -32,23 +32,10 @@ function doSetup() { } function doSetupDevon4node() { - if command -v devon4node &> /dev/null + if ! command -v devon4node &> /dev/null then - if [ -z "${1}" ] - then - echo "devon4node is already installed at $(command -v devon4node)" - exit - fi - else - doDevonCommand npm -q setup - local npm_command="${DEVON_IDE_HOME}/software/node/npm" - if [ ! -x "${npm_command}" ] - then - npm_command="${DEVON_IDE_HOME}/software/node/bin/npm" - fi - doDevonCommand npm -q setup doDevonCommand yarn -q setup - doRunCommand "'${npm_command}' install -g @devon4node/cli@latest" "install devon4node" + doRunCommand "npm install -g @devon4node/cli@latest" "install devon4node" fi } @@ -78,6 +65,7 @@ case ${1} in echo " create «name» [«args»] create a new devon4node application (same as devon4node new)" echo " generate «s» [«args»] generate devon4node components using the schematic «s» (same as devon4node generate)" echo " db «c» [«args»] execute a TypeORM command «c» (same as devon4node db)" + echo " cicd «args» generate cicd files for the currect devon4node project: $PWD" echo " «args» call NodeJS with the specified arguments" echo echo "Options:" @@ -88,17 +76,21 @@ case ${1} in ;; "create" | "c") shift - doSetupDevon4node setup + doSetupDevon4node devon4node new "${@}" ;; "generate" | "g") - doSetupDevon4node setup + doSetupDevon4node devon4node "${@}" ;; "db") - doSetupDevon4node setup + doSetupDevon4node devon4node "${@}" ;; +"cicd") + shift + doDevonCommand cicdgen node "${*}" +;; *) doRun "${*}" ;;