Template for Command Line Interface (CLI) tool in Kotlin
Install Command Line Tools (CLT) for Xcode:
xcode-select --installInstall Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Install:
curl -s "https://get.sdkman.io" | bash
source ~/.sdkman/bin/sdkman-init.shTest:
sdk list javaConfigure:
# open config file
sdk config
# set:
# sdkman_auto_answer=true
# save the fileConfigure project:
source configure.shOpen the project in Visual Studio Code:
code ../gradlew buildecho "John" > name.txt
./gradlew run --args="greet name.txt"
./gradlew run --args="greet --language es name.txt"
./gradlew run --args="greet -l bg name.txt"Build JAR:
./gradlew shadowJarRun as JAR:
echo "John" > name.txt
java -jar build/libs/cli-kt.jar greet name.txt
java -jar build/libs/cli-kt.jar greet --language es name.txt
java -jar build/libs/cli-kt.jar greet -l bg name.txtRun all tests:
./gradlew test
GreetCommand Tests
generateGreeting function
✔ should generate correct greetings for different languages
GreetCommand execution
✔ should greet in English by default
✔ should handle non-existent file
✔ should greet in Spanish when specified
✔ should greet in Bulgarian when specified
readNameFromFile function
✔ should read name correctly from file
6 passing (698ms)Run specific test:
./gradlew test --tests "GreetCommandTest\$GenerateGreetingTests.testGenerateGreeting"
GreetCommand Tests
generateGreeting function
✔ should generate correct greetings for different languages
1 passing (558ms)