ProductPromotion
Logo

Kotlin

made by https://0x3d.site

GitHub - dbaelz/Konclik: Konclik: Kotlin/Native Command Line Interface Kit
Konclik: Kotlin/Native Command Line Interface Kit. Contribute to dbaelz/Konclik development by creating an account on GitHub.
Visit Site

GitHub - dbaelz/Konclik: Konclik: Kotlin/Native Command Line Interface Kit

GitHub - dbaelz/Konclik: Konclik: Kotlin/Native Command Line Interface Kit

Konclik: Kotlin/Native Command Line Interface Kit

Build Status

Konclik is a library for the development of a CLI application.

Why Konclik?

  • Provides a simple yet useful Kotlin DSL to define the application
  • Built with Kotlin's Multi-platform Project tools so you can write once and run everywhere
  • Targets Linux, Windows, MacOS, Jvm, and NodeJS

Version

  • The newest version of Konclik is 0.6.0
  • All changes are documented in the CHANGELOG

Contributing

Issues, contributions and suggestions are very welcome. Please report bugs, improvements and new features with an issue, so we can discuss the next steps.

Project structure

This project uses the new MPP plugin, the root contains Konclik's core source in the src directory. In addition to the core, the following submodules are available.

  • example: An example, which demonstrates a Konclik app targeting MacOS, Linux, Windows, Jvm, and NodeJS.

Setup

Konclik is published to bintray and can easily be integrated into an existing project.

Repository

repositories {
    maven {
        url "https://dl.bintray.com/dbaelz/konclik"
    }
    // Other repos like:
    //jcenter()
}

Download

dependencies {
    // With Gradle Metadata enabled, all targets can depend on
    implementation "de.dbaelz.konclik:konclik:0.6.0"
    
    // All artifacts are available with the -target suffix
    implementation "de.dbaelz.konclik:konclik-macos:0.6.0"
    implementation "de.dbaelz.konclik:konclik-linux:0.6.0"
    implementation "de.dbaelz.konclik:konclik-windows:0.6.0"
    implementation "de.dbaelz.konclik:konclik-jvm:0.6.0"
    implementation "de.dbaelz.konclik:konclik-js:0.6.0"
}

Available tasks

Note: If the Host machine does not support a specific target, that target's tasks will simply be ignored.

The following Gradle tasks are available:

  • Testing: jsTest, macosTest, jvmTest, linuxTest, windowsTest
  • publish: Publish to bintray, replace the publishing url with your own repository.
  • publishToMavenLocal: Publish a version to your local machine, available in the mavenLocal() repository
  • Example App: example:runMacos, example:runJar, example:runLinux, example:runWindows, example:runNodejs

Konclik DSL Example

This project provides an example, which shows the usage of the DSL.

The current DSL is WIP, but suitable to build effective CLI applications. It provides KDoc to explain the usage. A short overview of the components:

  • konclikApp: The CLI app
    • The app provides optional metadata (name, description and version)
    • A app consists of one or more command entries
    • Use run() to parse the provided CLI args and execute the command with these args
    • The app provides a help output showing the available commands, when a invalid command was entered
    • It prints a version info with --version
  • command:
    • It's identified by its name. The description is optional
    • parameters can be defined for the command. They evaluated in the following order:
      • arguments: Positional arguments, internally evaluated by the order of the list
      • options: Options are optional and could be switch or value parameters
    • The action consists of the logic to execute for the command
    • By default, parser errors are printed to standard out. With onError this can be changed and custom error handling is possible
    • The command prints a help page with --help and returns

License

Apache 2 License

More Resources
to explore the angular.

mail [email protected] to add your project or resources here 🔥.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory