diff --git a/templates/create_formula/languages/kotlin-jdk11/Dockerfile b/templates/create_formula/languages/kotlin-jdk11/Dockerfile new file mode 100644 index 00000000..8317a311 --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk11/Dockerfile @@ -0,0 +1,13 @@ +FROM ritclizup/rit-kotlin-jdk8-runner + +USER root + +RUN mkdir /rit +COPY . /rit +RUN sed -i 's/\r//g' /rit/set_umask.sh +RUN sed -i 's/\r//g' /rit/run.sh +RUN chmod +x /rit/set_umask.sh + +WORKDIR /app +ENTRYPOINT ["/rit/set_umask.sh"] +CMD ["/rit/run.sh"] diff --git a/templates/create_formula/languages/kotlin-jdk11/Makefile b/templates/create_formula/languages/kotlin-jdk11/Makefile new file mode 100644 index 00000000..b219691c --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk11/Makefile @@ -0,0 +1,32 @@ +# KOTLIN +BIN_FOLDER=bin +SH=$(BIN_FOLDER)/run.sh +BAT=$(BIN_FOLDER)/run.bat +BUILD=mvn clean install +CLEAN=mvn clean +JAR_FILE=Main.jar +TARGET=target + +build: kotlin-build sh-unix bat-windows docker + $(CLEAN) + +kotlin-build: + mkdir -p $(BIN_FOLDER) + $(BUILD) + mv $(TARGET)/$(JAR_FILE) $(BIN_FOLDER) + rm -Rf $(TARGET) + +sh-unix: + echo '#!/bin/sh' > $(SH) + echo 'java -jar "$$(dirname "$$0")"/$(JAR_FILE)' >> $(SH) + chmod +x $(SH) + +bat-windows: + echo '@ECHO OFF' > $(BAT) + echo 'java -jar $(JAR_FILE)' >> $(BAT) + +test: + mvn clean install + +docker: + cp Dockerfile set_umask.sh $(BIN_FOLDER) diff --git a/templates/create_formula/languages/kotlin-jdk11/README.md b/templates/create_formula/languages/kotlin-jdk11/README.md new file mode 100644 index 00000000..880c6f45 --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk11/README.md @@ -0,0 +1,11 @@ +# Ritchie Formula + +## command + +```bash +#rit-replace{formulaCmd} +``` + +## description + +description of formula diff --git a/templates/create_formula/languages/kotlin-jdk11/build.bat b/templates/create_formula/languages/kotlin-jdk11/build.bat new file mode 100644 index 00000000..7ba05b3b --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk11/build.bat @@ -0,0 +1,33 @@ +:: Java parameters +echo off +SETLOCAL +SET BIN_FOLDER=bin +SET BIN_NAME=Main.jar +SET BAT_FILE=%BIN_FOLDER%\run.bat +SET SH_FILE=%BIN_FOLDER%\run.sh +:build + call mvn clean install 1>&2 + if %errorlevel% neq 0 exit /b %errorlevel% + mkdir %BIN_FOLDER% + copy target\%BIN_NAME% %BIN_FOLDER%\%BIN_NAME% + rmdir /Q /S target + CALL :BAT_WINDOWS + CALL :SH_LINUX + CALL :CP_DOCKER + GOTO DONE + +:BAT_WINDOWS + echo @ECHO OFF > %BAT_FILE% + echo java -jar %BIN_NAME% >> %BAT_FILE% + GOTO DONE + +:SH_LINUX + echo java -jar "$(dirname "$0")"/%BIN_NAME% > %SH_FILE% + GOTO DONE + +:CP_DOCKER + copy Dockerfile %BIN_FOLDER% + copy set_umask.sh %BIN_FOLDER% + GOTO DONE + +:DONE diff --git a/templates/create_formula/languages/kotlin-jdk11/config.json b/templates/create_formula/languages/kotlin-jdk11/config.json new file mode 100644 index 00000000..1a05e1ac --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk11/config.json @@ -0,0 +1,46 @@ +{ + "dockerImageBuilder": "ritclizup/rit-kotlin-jdk8-builder", + "inputs": [ + { + "cache": { + "active": true, + "newLabel": "Type new value. ", + "qty": 3 + }, + "label": "Type your name: ", + "name": "rit_input_text", + "required": true, + "type": "text" + }, + { + "default": "false", + "items": [ + "false", + "true" + ], + "label": "Have you ever used Ritchie? ", + "name": "rit_input_boolean", + "required": false, + "type": "bool" + }, + { + "default": "everything", + "items": [ + "daily tasks", + "workflows", + "toils", + "everything" + ], + "label": "What do you want to automate? ", + "name": "rit_input_list", + "required": false, + "type": "text" + }, + { + "label": "Tell us a secret: ", + "name": "rit_input_password", + "required": true, + "type": "password" + } + ] +} diff --git a/templates/create_formula/languages/kotlin-jdk11/metadata.json b/templates/create_formula/languages/kotlin-jdk11/metadata.json new file mode 100644 index 00000000..c7e6c4b9 --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk11/metadata.json @@ -0,0 +1,17 @@ +{ + "execution": [ + "local", + "docker" + ], + "os": { + "deps": [], + "support": [ + "windows", + "mac", + "linux" + ] + }, + "tags": [ + "#rit-replace{formulaTags}" + ] +} diff --git a/templates/create_formula/languages/kotlin-jdk11/pom.xml b/templates/create_formula/languages/kotlin-jdk11/pom.xml new file mode 100644 index 00000000..9a2c1fe9 --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk11/pom.xml @@ -0,0 +1,129 @@ + + + 4.0.0 + + formula + com.ritchie + 1.0-SNAPSHOT + + + UTF-8 + official + 11 + 3.2.0 + + + + + mavenCentral + https://repo1.maven.org/maven2/ + + + + + Main + src/main/kotlin + src/test/kotlin + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven-jar-plugin.version} + + + + + com.ritchie.Main + + + + + + maven-assembly-plugin + + false + + + com.ritchie.Main + + + + jar-with-dependencies + + + + + make-assembly + package + + single + + + + + + org.jetbrains.kotlin + kotlin-maven-plugin + 1.4.10 + + + compile + compile + + compile + + + + test-compile + test-compile + + test-compile + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + + compile + compile + + compile + + + + testCompile + test-compile + + testCompile + + + + + + + + + org.jetbrains.kotlin + kotlin-test-junit + 1.4.10 + test + + + org.jetbrains.kotlin + kotlin-stdlib + 1.4.10 + + + com.github.tomas-langer + chalk + 1.0.2 + + + diff --git a/templates/create_formula/languages/kotlin-jdk11/set_umask.sh b/templates/create_formula/languages/kotlin-jdk11/set_umask.sh new file mode 100644 index 00000000..091c13d6 --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk11/set_umask.sh @@ -0,0 +1,3 @@ +#!/bin/sh +umask 0011 +$1 diff --git a/templates/create_formula/languages/kotlin-jdk11/src/main/kotlin/com/ritchie/Main.kt b/templates/create_formula/languages/kotlin-jdk11/src/main/kotlin/com/ritchie/Main.kt new file mode 100644 index 00000000..310e2f3c --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk11/src/main/kotlin/com/ritchie/Main.kt @@ -0,0 +1,15 @@ +package com.ritchie + +import com.ritchie.formula.Formula + +object Main { + @JvmStatic + fun main(args: Array?) { + val inputText: String = System.getenv("RIT_INPUT_TEXT") + val inputBoolean: Boolean = (System.getenv("RIT_INPUT_BOOLEAN").toBoolean()) + val inputList: String = System.getenv("RIT_INPUT_LIST") + val inputPassword: String = System.getenv("RIT_INPUT_PASSWORD") + val formula = Formula(inputText, inputBoolean, inputList, inputPassword) + formula.Run() + } +} diff --git a/templates/create_formula/languages/kotlin-jdk11/src/main/kotlin/com/ritchie/formula/Formula.kt b/templates/create_formula/languages/kotlin-jdk11/src/main/kotlin/com/ritchie/formula/Formula.kt new file mode 100644 index 00000000..14060449 --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk11/src/main/kotlin/com/ritchie/formula/Formula.kt @@ -0,0 +1,16 @@ +package com.ritchie.formula +import com.github.tomaslanger.chalk.Chalk; + +class Formula(private val inputText: String, private val inputBoolean: Boolean, private val inputList: String, private val inputPassword: String) { + fun Run() { + println("Hello World!") + println(Chalk.on(String.format("My name is %s.", inputText)).green()) + if (inputBoolean) { + println(Chalk.on("I've already created formulas using Ritchie.").cyan()) + } else { + println(Chalk.on("I'm excited in creating new formulas using Ritchie.").red()) + } + println(Chalk.on(String.format("Today, I want to automate %s.", inputList)).yellow()) + println(Chalk.on(String.format("My secret is %s.", inputPassword)).magenta()) + } +} diff --git a/templates/create_formula/languages/kotlin-jdk11/src/test/kotlin/com/ritchie/formula/FormulaTest.kt b/templates/create_formula/languages/kotlin-jdk11/src/test/kotlin/com/ritchie/formula/FormulaTest.kt new file mode 100644 index 00000000..13417755 --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk11/src/test/kotlin/com/ritchie/formula/FormulaTest.kt @@ -0,0 +1,52 @@ +package com.ritchie.formula + +import org.junit.After +import org.junit.Before +import org.junit.Test +import java.io.ByteArrayOutputStream +import java.io.PrintStream +import kotlin.test.assertEquals + +class FormulaTest { + private val outContent: ByteArrayOutputStream = ByteArrayOutputStream() + private val originalOut: PrintStream = System.out + @Before + fun setUpStreams() { + System.setOut(PrintStream(outContent)) + } + + @After + fun restoreStreams() { + System.setOut(originalOut) + } + + @Test + fun runTrueInput() { + Formula("Hello", true, "world", "pass").Run() + assertEquals("Hello World!" + + "My name is Hello." + + "I've already created formulas using Ritchie." + + "Today, I want to automate world." + + "My secret is pass.", outContent.toString().replace(Regex("\\r|\\n"), "").replace(Regex("\u001B\\[[;\\d]*m"), "")) + } + + @Test + fun runFalseInput() { + Formula("Hello", false, "world", "pass").Run() + assertEquals("Hello World!" + + "My name is Hello." + + "I'm excited in creating new formulas using Ritchie." + + "Today, I want to automate world." + + "My secret is pass.", outContent.toString().replace(Regex("\\r|\\n"), "").replace(Regex("\u001B\\[[;\\d]*m"), "")) + } + + @Test + fun runNoSecretsInput() { + Formula("Hello", false, "world", "").Run() + assertEquals("Hello World!" + + "My name is Hello." + + "I'm excited in creating new formulas using Ritchie." + + "Today, I want to automate world." + + "My secret is .", outContent.toString().replace(Regex("\\r|\\n"), "").replace(Regex("\u001B\\[[;\\d]*m"), "")) + } +} diff --git a/templates/create_formula/languages/kotlin-jdk8/Dockerfile b/templates/create_formula/languages/kotlin-jdk8/Dockerfile new file mode 100644 index 00000000..8317a311 --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk8/Dockerfile @@ -0,0 +1,13 @@ +FROM ritclizup/rit-kotlin-jdk8-runner + +USER root + +RUN mkdir /rit +COPY . /rit +RUN sed -i 's/\r//g' /rit/set_umask.sh +RUN sed -i 's/\r//g' /rit/run.sh +RUN chmod +x /rit/set_umask.sh + +WORKDIR /app +ENTRYPOINT ["/rit/set_umask.sh"] +CMD ["/rit/run.sh"] diff --git a/templates/create_formula/languages/kotlin-jdk8/Makefile b/templates/create_formula/languages/kotlin-jdk8/Makefile new file mode 100644 index 00000000..b219691c --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk8/Makefile @@ -0,0 +1,32 @@ +# KOTLIN +BIN_FOLDER=bin +SH=$(BIN_FOLDER)/run.sh +BAT=$(BIN_FOLDER)/run.bat +BUILD=mvn clean install +CLEAN=mvn clean +JAR_FILE=Main.jar +TARGET=target + +build: kotlin-build sh-unix bat-windows docker + $(CLEAN) + +kotlin-build: + mkdir -p $(BIN_FOLDER) + $(BUILD) + mv $(TARGET)/$(JAR_FILE) $(BIN_FOLDER) + rm -Rf $(TARGET) + +sh-unix: + echo '#!/bin/sh' > $(SH) + echo 'java -jar "$$(dirname "$$0")"/$(JAR_FILE)' >> $(SH) + chmod +x $(SH) + +bat-windows: + echo '@ECHO OFF' > $(BAT) + echo 'java -jar $(JAR_FILE)' >> $(BAT) + +test: + mvn clean install + +docker: + cp Dockerfile set_umask.sh $(BIN_FOLDER) diff --git a/templates/create_formula/languages/kotlin-jdk8/README.md b/templates/create_formula/languages/kotlin-jdk8/README.md new file mode 100644 index 00000000..880c6f45 --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk8/README.md @@ -0,0 +1,11 @@ +# Ritchie Formula + +## command + +```bash +#rit-replace{formulaCmd} +``` + +## description + +description of formula diff --git a/templates/create_formula/languages/kotlin-jdk8/build.bat b/templates/create_formula/languages/kotlin-jdk8/build.bat new file mode 100644 index 00000000..7ba05b3b --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk8/build.bat @@ -0,0 +1,33 @@ +:: Java parameters +echo off +SETLOCAL +SET BIN_FOLDER=bin +SET BIN_NAME=Main.jar +SET BAT_FILE=%BIN_FOLDER%\run.bat +SET SH_FILE=%BIN_FOLDER%\run.sh +:build + call mvn clean install 1>&2 + if %errorlevel% neq 0 exit /b %errorlevel% + mkdir %BIN_FOLDER% + copy target\%BIN_NAME% %BIN_FOLDER%\%BIN_NAME% + rmdir /Q /S target + CALL :BAT_WINDOWS + CALL :SH_LINUX + CALL :CP_DOCKER + GOTO DONE + +:BAT_WINDOWS + echo @ECHO OFF > %BAT_FILE% + echo java -jar %BIN_NAME% >> %BAT_FILE% + GOTO DONE + +:SH_LINUX + echo java -jar "$(dirname "$0")"/%BIN_NAME% > %SH_FILE% + GOTO DONE + +:CP_DOCKER + copy Dockerfile %BIN_FOLDER% + copy set_umask.sh %BIN_FOLDER% + GOTO DONE + +:DONE diff --git a/templates/create_formula/languages/kotlin-jdk8/config.json b/templates/create_formula/languages/kotlin-jdk8/config.json new file mode 100644 index 00000000..1a05e1ac --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk8/config.json @@ -0,0 +1,46 @@ +{ + "dockerImageBuilder": "ritclizup/rit-kotlin-jdk8-builder", + "inputs": [ + { + "cache": { + "active": true, + "newLabel": "Type new value. ", + "qty": 3 + }, + "label": "Type your name: ", + "name": "rit_input_text", + "required": true, + "type": "text" + }, + { + "default": "false", + "items": [ + "false", + "true" + ], + "label": "Have you ever used Ritchie? ", + "name": "rit_input_boolean", + "required": false, + "type": "bool" + }, + { + "default": "everything", + "items": [ + "daily tasks", + "workflows", + "toils", + "everything" + ], + "label": "What do you want to automate? ", + "name": "rit_input_list", + "required": false, + "type": "text" + }, + { + "label": "Tell us a secret: ", + "name": "rit_input_password", + "required": true, + "type": "password" + } + ] +} diff --git a/templates/create_formula/languages/kotlin-jdk8/metadata.json b/templates/create_formula/languages/kotlin-jdk8/metadata.json new file mode 100644 index 00000000..c7e6c4b9 --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk8/metadata.json @@ -0,0 +1,17 @@ +{ + "execution": [ + "local", + "docker" + ], + "os": { + "deps": [], + "support": [ + "windows", + "mac", + "linux" + ] + }, + "tags": [ + "#rit-replace{formulaTags}" + ] +} diff --git a/templates/create_formula/languages/kotlin-jdk8/pom.xml b/templates/create_formula/languages/kotlin-jdk8/pom.xml new file mode 100644 index 00000000..521e3661 --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk8/pom.xml @@ -0,0 +1,129 @@ + + + 4.0.0 + + formula + com.ritchie + 1.0-SNAPSHOT + + + UTF-8 + official + 1.8 + 3.2.0 + + + + + mavenCentral + https://repo1.maven.org/maven2/ + + + + + Main + src/main/kotlin + src/test/kotlin + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven-jar-plugin.version} + + + + + com.ritchie.Main + + + + + + maven-assembly-plugin + + false + + + com.ritchie.Main + + + + jar-with-dependencies + + + + + make-assembly + package + + single + + + + + + org.jetbrains.kotlin + kotlin-maven-plugin + 1.4.10 + + + compile + compile + + compile + + + + test-compile + test-compile + + test-compile + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + + compile + compile + + compile + + + + testCompile + test-compile + + testCompile + + + + + + + + + org.jetbrains.kotlin + kotlin-test-junit + 1.4.10 + test + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + 1.4.10 + + + com.github.tomas-langer + chalk + 1.0.2 + + + diff --git a/templates/create_formula/languages/kotlin-jdk8/set_umask.sh b/templates/create_formula/languages/kotlin-jdk8/set_umask.sh new file mode 100644 index 00000000..091c13d6 --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk8/set_umask.sh @@ -0,0 +1,3 @@ +#!/bin/sh +umask 0011 +$1 diff --git a/templates/create_formula/languages/kotlin-jdk8/src/main/kotlin/com/ritchie/Main.kt b/templates/create_formula/languages/kotlin-jdk8/src/main/kotlin/com/ritchie/Main.kt new file mode 100644 index 00000000..310e2f3c --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk8/src/main/kotlin/com/ritchie/Main.kt @@ -0,0 +1,15 @@ +package com.ritchie + +import com.ritchie.formula.Formula + +object Main { + @JvmStatic + fun main(args: Array?) { + val inputText: String = System.getenv("RIT_INPUT_TEXT") + val inputBoolean: Boolean = (System.getenv("RIT_INPUT_BOOLEAN").toBoolean()) + val inputList: String = System.getenv("RIT_INPUT_LIST") + val inputPassword: String = System.getenv("RIT_INPUT_PASSWORD") + val formula = Formula(inputText, inputBoolean, inputList, inputPassword) + formula.Run() + } +} diff --git a/templates/create_formula/languages/kotlin-jdk8/src/main/kotlin/com/ritchie/formula/Formula.kt b/templates/create_formula/languages/kotlin-jdk8/src/main/kotlin/com/ritchie/formula/Formula.kt new file mode 100644 index 00000000..14060449 --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk8/src/main/kotlin/com/ritchie/formula/Formula.kt @@ -0,0 +1,16 @@ +package com.ritchie.formula +import com.github.tomaslanger.chalk.Chalk; + +class Formula(private val inputText: String, private val inputBoolean: Boolean, private val inputList: String, private val inputPassword: String) { + fun Run() { + println("Hello World!") + println(Chalk.on(String.format("My name is %s.", inputText)).green()) + if (inputBoolean) { + println(Chalk.on("I've already created formulas using Ritchie.").cyan()) + } else { + println(Chalk.on("I'm excited in creating new formulas using Ritchie.").red()) + } + println(Chalk.on(String.format("Today, I want to automate %s.", inputList)).yellow()) + println(Chalk.on(String.format("My secret is %s.", inputPassword)).magenta()) + } +} diff --git a/templates/create_formula/languages/kotlin-jdk8/src/test/kotlin/com/ritchie/formula/FormulaTest.kt b/templates/create_formula/languages/kotlin-jdk8/src/test/kotlin/com/ritchie/formula/FormulaTest.kt new file mode 100644 index 00000000..13417755 --- /dev/null +++ b/templates/create_formula/languages/kotlin-jdk8/src/test/kotlin/com/ritchie/formula/FormulaTest.kt @@ -0,0 +1,52 @@ +package com.ritchie.formula + +import org.junit.After +import org.junit.Before +import org.junit.Test +import java.io.ByteArrayOutputStream +import java.io.PrintStream +import kotlin.test.assertEquals + +class FormulaTest { + private val outContent: ByteArrayOutputStream = ByteArrayOutputStream() + private val originalOut: PrintStream = System.out + @Before + fun setUpStreams() { + System.setOut(PrintStream(outContent)) + } + + @After + fun restoreStreams() { + System.setOut(originalOut) + } + + @Test + fun runTrueInput() { + Formula("Hello", true, "world", "pass").Run() + assertEquals("Hello World!" + + "My name is Hello." + + "I've already created formulas using Ritchie." + + "Today, I want to automate world." + + "My secret is pass.", outContent.toString().replace(Regex("\\r|\\n"), "").replace(Regex("\u001B\\[[;\\d]*m"), "")) + } + + @Test + fun runFalseInput() { + Formula("Hello", false, "world", "pass").Run() + assertEquals("Hello World!" + + "My name is Hello." + + "I'm excited in creating new formulas using Ritchie." + + "Today, I want to automate world." + + "My secret is pass.", outContent.toString().replace(Regex("\\r|\\n"), "").replace(Regex("\u001B\\[[;\\d]*m"), "")) + } + + @Test + fun runNoSecretsInput() { + Formula("Hello", false, "world", "").Run() + assertEquals("Hello World!" + + "My name is Hello." + + "I'm excited in creating new formulas using Ritchie." + + "Today, I want to automate world." + + "My secret is .", outContent.toString().replace(Regex("\\r|\\n"), "").replace(Regex("\u001B\\[[;\\d]*m"), "")) + } +}