Skip to content

swiftsoftwaregroup/cli-kt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cli-kt

Template for Command Line Interface (CLI) tool in Kotlin

Setup for macOS

Xcode Command Line Tools

Install Command Line Tools (CLT) for Xcode:

xcode-select --install

Homebrew

Install Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

SDKMAN!

Install:

curl -s "https://get.sdkman.io" | bash
source ~/.sdkman/bin/sdkman-init.sh

Test:

sdk list java

Configure:

# open config file
sdk config

# set: 
# sdkman_auto_answer=true

# save the file

Work on macOS

Configure project:

source configure.sh

Open the project in Visual Studio Code:

code .

Build

./gradlew build

Run

echo "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"

Run as JAR

Build JAR:

./gradlew shadowJar

Run 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.txt

Test

Run 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)

About

Template for Command Line Interface (CLI) tool in Kotlin

Topics

Resources

License

Stars

Watchers

Forks