mirror of
https://github.com/gotson/komga.git
synced 2025-12-06 16:42:24 +01:00
hosting of webui within Spring jar
This commit is contained in:
parent
b059788d4f
commit
7fc4832aee
4 changed files with 61 additions and 2 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -25,3 +25,4 @@ dist/
|
||||||
nbdist/
|
nbdist/
|
||||||
.nb-gradle/
|
.nb-gradle/
|
||||||
|
|
||||||
|
/komga/src/main/resources/public/
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,10 @@ jobs:
|
||||||
include:
|
include:
|
||||||
- stage: deploy
|
- stage: deploy
|
||||||
jdk: openjdk8
|
jdk: openjdk8
|
||||||
script: skip # do not rerun any tests
|
install:
|
||||||
|
- ./gradlew copyWebDist
|
||||||
|
- ./gradlew assemble
|
||||||
|
script: skip
|
||||||
deploy:
|
deploy:
|
||||||
- provider: script
|
- provider: script
|
||||||
script: ./gradlew dockerPushBeta
|
script: ./gradlew dockerPushBeta
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import com.github.breadmoirai.githubreleaseplugin.GithubReleaseTask
|
import com.github.breadmoirai.githubreleaseplugin.GithubReleaseTask
|
||||||
import com.palantir.gradle.docker.DockerExtension
|
import com.palantir.gradle.docker.DockerExtension
|
||||||
|
import org.apache.tools.ant.taskdefs.condition.Os
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
|
|
@ -113,6 +114,42 @@ tasks {
|
||||||
from(zipTree(getByName("bootJar").outputs.files.singleFile))
|
from(zipTree(getByName("bootJar").outputs.files.singleFile))
|
||||||
into("$buildDir/dependency")
|
into("$buildDir/dependency")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
register<Delete>("deletePublic") {
|
||||||
|
delete("$projectDir/src/main/resources/public/")
|
||||||
|
}
|
||||||
|
|
||||||
|
register<Exec>("npmInstall") {
|
||||||
|
workingDir("$rootDir/komga-webui")
|
||||||
|
commandLine(
|
||||||
|
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
||||||
|
"npm.cmd"
|
||||||
|
} else {
|
||||||
|
"npm"
|
||||||
|
},
|
||||||
|
"install"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
register<Exec>("npmBuild") {
|
||||||
|
dependsOn("npmInstall")
|
||||||
|
workingDir("$rootDir/komga-webui")
|
||||||
|
commandLine(
|
||||||
|
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
||||||
|
"npm.cmd"
|
||||||
|
} else {
|
||||||
|
"npm"
|
||||||
|
},
|
||||||
|
"run",
|
||||||
|
"build"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
register<Copy>("copyWebDist") {
|
||||||
|
dependsOn("deletePublic", "npmBuild")
|
||||||
|
from("$rootDir/komga-webui/dist/")
|
||||||
|
into("$projectDir/src/main/resources/public/")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
configure<DockerExtension> {
|
configure<DockerExtension> {
|
||||||
|
|
@ -132,4 +169,4 @@ githubRelease {
|
||||||
}
|
}
|
||||||
tasks.withType<GithubReleaseTask> {
|
tasks.withType<GithubReleaseTask> {
|
||||||
dependsOn(tasks.bootJar)
|
dependsOn(tasks.bootJar)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
package org.gotson.komga.infrastructure.web
|
||||||
|
|
||||||
|
import org.springframework.boot.autoconfigure.web.servlet.error.ErrorViewResolver
|
||||||
|
import org.springframework.http.HttpStatus
|
||||||
|
import org.springframework.stereotype.Component
|
||||||
|
import org.springframework.web.servlet.ModelAndView
|
||||||
|
import javax.servlet.http.HttpServletRequest
|
||||||
|
|
||||||
|
|
||||||
|
@Component
|
||||||
|
class SPAErrorViewResolver : ErrorViewResolver {
|
||||||
|
override fun resolveErrorView(request: HttpServletRequest, status: HttpStatus, model: MutableMap<String, Any>): ModelAndView =
|
||||||
|
if (status == HttpStatus.NOT_FOUND) {
|
||||||
|
ModelAndView("/", HttpStatus.TEMPORARY_REDIRECT)
|
||||||
|
} else {
|
||||||
|
ModelAndView("/error", status)
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue