| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /*
- * Copyright 2019-2021 Mamoe Technologies and contributors.
- *
- * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
- * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
- *
- * https://github.com/mamoe/mirai/blob/dev/LICENSE
- */
- package net.mamoe.mirai.dokka
- import kotlinx.serialization.json.Json
- import java.io.File
- val pages = File("mirai-dokka/pages")
- val json = Json {
- prettyPrint = true
- prettyPrintIndent = " "
- }
- private val FileDevNull = File(
- if (System.getProperty("os.name")
- .startsWith("Windows")
- ) "NUL" else "/dev/null"
- )
- fun system(cmd: String) {
- val rsp = ProcessBuilder(cmd).inheritIO().start().waitFor()
- if (rsp != 0) error("Exec return $rsp, $cmd")
- }
- fun exec(vararg cmd: String) {
- val rsp = ProcessBuilder(*cmd).inheritIO().start().waitFor()
- if (rsp != 0) error("Exec return $rsp, ${cmd.joinToString(" ")}")
- }
- fun repoexec(
- vararg cmd: String,
- nooutput: Boolean = false,
- ) {
- val rsp = ProcessBuilder(*cmd)
- .inheritIO()
- .directory(pages)
- .also { builder ->
- if (nooutput) {
- builder.redirectOutput(ProcessBuilder.Redirect.to(FileDevNull))
- }
- }
- .start()
- .waitFor()
- if (rsp != 0) error("Exec return $rsp, ${cmd.joinToString(" ")}")
- }
|