mirror of
https://github.com/InsanusMokrassar/KotlinPublicationScriptsBuilder.git
synced 2025-09-03 06:59:17 +00:00
Compare commits
4 Commits
build-0c8e
...
build-4c48
Author | SHA1 | Date | |
---|---|---|---|
4c4845803d | |||
4ec7d3847f | |||
2bbfe99ff4 | |||
881d268ea9 |
17
.github/workflows/build.yml
vendored
Normal file
17
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
on: [push]
|
||||||
|
|
||||||
|
name: Build
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-ubuntu:
|
||||||
|
name: Commit release
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Setup JDK
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 11
|
||||||
|
- name: Build
|
||||||
|
run: ./gradlew build packageUberJarForCurrentOS
|
13
.github/workflows/commit-release.yml
vendored
13
.github/workflows/commit-release.yml
vendored
@@ -1,4 +1,7 @@
|
|||||||
on: [push]
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
name: Commit release
|
name: Commit release
|
||||||
|
|
||||||
@@ -16,7 +19,13 @@ jobs:
|
|||||||
- name: Set version from gradle.properties
|
- name: Set version from gradle.properties
|
||||||
run: echo "version=` cat gradle.properties | grep ^version= | grep -o [\\.0-9]* `" >> $GITHUB_ENV
|
run: echo "version=` cat gradle.properties | grep ^version= | grep -o [\\.0-9]* `" >> $GITHUB_ENV
|
||||||
- name: Build
|
- name: Build
|
||||||
run: ./gradlew packageUberJarForCurrentOS
|
run: ./gradlew build packageUberJarForCurrentOS
|
||||||
|
- name: Publish Web
|
||||||
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
publish_dir: ./web/build/distributions
|
||||||
|
publish_branch: site
|
||||||
- name: Create Release
|
- name: Create Release
|
||||||
id: create_release
|
id: create_release
|
||||||
uses: actions/create-release@v1
|
uses: actions/create-release@v1
|
||||||
|
@@ -1,16 +1,82 @@
|
|||||||
package dev.inmo.kmppscriptbuilder.web
|
package dev.inmo.kmppscriptbuilder.web
|
||||||
|
|
||||||
|
import dev.inmo.kmppscriptbuilder.core.models.Config
|
||||||
|
import dev.inmo.kmppscriptbuilder.core.utils.serialFormat
|
||||||
import dev.inmo.kmppscriptbuilder.web.views.*
|
import dev.inmo.kmppscriptbuilder.web.views.*
|
||||||
import kotlinx.browser.document
|
import kotlinx.browser.document
|
||||||
|
import kotlinx.dom.appendElement
|
||||||
|
import org.w3c.dom.*
|
||||||
|
import org.w3c.dom.url.URL
|
||||||
|
import org.w3c.files.*
|
||||||
|
|
||||||
|
fun saveFile(content: String, filename: String) {
|
||||||
|
val a = document.body!!.appendElement("a") {
|
||||||
|
setAttribute("style", "visibility:hidden; display: none")
|
||||||
|
} as HTMLAnchorElement
|
||||||
|
val blob = Blob(arrayOf(content), BlobPropertyBag(
|
||||||
|
"text/plain;charset=utf-8"
|
||||||
|
))
|
||||||
|
val url = URL.createObjectURL(blob)
|
||||||
|
a.href = url
|
||||||
|
a.download = filename
|
||||||
|
a.target = "_blank"
|
||||||
|
a.click()
|
||||||
|
URL.revokeObjectURL(url)
|
||||||
|
a.remove()
|
||||||
|
}
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
document.addEventListener(
|
document.addEventListener(
|
||||||
"DOMContentLoaded",
|
"DOMContentLoaded",
|
||||||
{
|
{
|
||||||
val builderView = BuilderView()
|
val builderView = BuilderView()
|
||||||
document.body ?.onclick = {
|
|
||||||
println(builderView.config)
|
(document.getElementById("openConfig") as HTMLElement).onclick = {
|
||||||
Unit
|
val targetInput = document.body!!.appendElement("input") {
|
||||||
|
setAttribute("style", "visibility:hidden; display: none")
|
||||||
|
} as HTMLInputElement
|
||||||
|
targetInput.type = "file"
|
||||||
|
targetInput.onchange = {
|
||||||
|
targetInput.files ?.also { files ->
|
||||||
|
for (i in (0 until files.length) ) {
|
||||||
|
files[i] ?.also { file ->
|
||||||
|
val reader = FileReader()
|
||||||
|
|
||||||
|
reader.onload = {
|
||||||
|
val content = it.target.asDynamic().result as String
|
||||||
|
builderView.config = serialFormat.decodeFromString(Config.serializer(), content)
|
||||||
|
false
|
||||||
|
}
|
||||||
|
|
||||||
|
reader.readAsText(file)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
targetInput.click()
|
||||||
|
targetInput.remove()
|
||||||
|
false
|
||||||
|
}
|
||||||
|
(document.getElementById("saveConfig") as HTMLElement).onclick = {
|
||||||
|
val filename = "publish.kpsb"
|
||||||
|
val content = serialFormat.encodeToString(Config.serializer(), builderView.config)
|
||||||
|
|
||||||
|
saveFile(content, filename)
|
||||||
|
|
||||||
|
false
|
||||||
|
}
|
||||||
|
(document.getElementById("exportScript") as HTMLElement).onclick = {
|
||||||
|
val filename = "publish.gradle"
|
||||||
|
|
||||||
|
val content = builderView.config.run {
|
||||||
|
type.buildMavenGradleConfig(
|
||||||
|
mavenConfig,
|
||||||
|
licenses
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
saveFile(content, filename)
|
||||||
|
false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@@ -13,8 +13,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="uk-navbar-right">
|
<div class="uk-navbar-right">
|
||||||
<ul class="uk-navbar-nav">
|
<ul class="uk-navbar-nav">
|
||||||
<li uk-tooltip="title: Open file"><a href="#"><span uk-icon="icon: pull"></span></a></li><!--Open file-->
|
<li uk-tooltip="title: Open config" id="openConfig"><a href="#"><span uk-icon="icon: pull"></span></a></li><!--Open file-->
|
||||||
<li uk-tooltip="title: Save file"><a href="#"><span uk-icon="icon: push"></span></a></li><!--Save file-->
|
<li uk-tooltip="title: Save config" id="saveConfig"><a href="#"><span uk-icon="icon: push"></span></a></li><!--Save file-->
|
||||||
|
<li uk-tooltip="title: Export script" id="exportScript"><a href="#"><span uk-icon="icon: upload"></span></a></li><!--Save file-->
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
Reference in New Issue
Block a user