https://github.com/liushuixiaoxia/cmd-kit
cmd kit for java/kotlin
https://github.com/liushuixiaoxia/cmd-kit
java-cmd kotlin-cmd run-cmd
Last synced: 7 months ago
JSON representation
cmd kit for java/kotlin
- Host: GitHub
- URL: https://github.com/liushuixiaoxia/cmd-kit
- Owner: LiushuiXiaoxia
- Created: 2025-05-16T12:37:29.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-07-21T04:08:39.000Z (7 months ago)
- Last Synced: 2025-07-21T05:38:20.135Z (7 months ago)
- Topics: java-cmd, kotlin-cmd, run-cmd
- Language: Kotlin
- Homepage:
- Size: 110 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CmdKit
---
工作中经常需要调用 `shell` 命令,参考 `python` 的 `subprocess`, 使用 `kotlin` 简单包了一层,支持 `java/kotlin`, `mac/linux` 使用。
[](https://github.com/LiushuiXiaoxia/cmd-kit/actions/workflows/gradle.yml)
# 使用方法
[](https://jitpack.io/#LiushuiXiaoxia/cmd-kit)
```gradle
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
dependencies {
implementation("com.github.LiushuiXiaoxia:cmd-kit:$version")
}
```
```angular2html
jitpack.io
https://jitpack.io
com.github.LiushuiXiaoxia
cmd-kit
${version}
```
使用举例
主要有 `run` 和 `call` 两个方法。
```kotlin
// 全局配置
fun setup(
logEnable: Boolean,
logback: CmdLogback,
timeout: Long = Global.DEFAULT_TIMEOUT,
) {
}
// 仅执行,默认输出,忽略错误,返回结果码
fun run(
cmd: String,
ws: File? = null,
): Int {
}
// 执行,不输出,返回结果, 默认不会检测结果
fun call(
cmd: String,
ws: File? = null,
timeout: Long,
env: Map?,
check: Boolean = false,
): CmdResult {
}
```
```kotlin
val tmp = File("tmp", "t-${System.currentTimeMillis()}").canonicalFile
println("tmp = $tmp")
CmdKit.call("mkdir -p $tmp").check("make dir fail")
CmdKit.call("git clone git@github.com:LiushuiXiaoxia/cmd-kit.git $tmp").check("git check failed")
CmdKit.run("cd $tmp && git status && git log -5")
CmdKit.run("cd $tmp && ./gradlew clean assemble")
CmdKit.run("rm -rf $tmp")
println("tmp = ${tmp.exists()}")
// dsl
val tmp = File("build/tmp", "t-${System.currentTimeMillis()}").canonicalFile
runCmd("cd $tmp && ./gradlew clean assemble") {
timeout = 120
env = linkedMapOf(
"JAVA_HOME" to "XXX"
)
}
println("tmp = ${tmp.exists()}")
// dsl checkResult
runCmd("exit 1") {
checkResult("cmd run fail")
}
```