diff --git a/pkg/administration/publish.go b/pkg/administration/publish.go index b3a0b62..bf71b78 100644 --- a/pkg/administration/publish.go +++ b/pkg/administration/publish.go @@ -12,14 +12,24 @@ import ( ) func doPublish(c *fiber.Ctx) error { - var upstream *sign.UpstreamConfig + var workdir string var site *sign.SiteConfig + var upstream *sign.UpstreamConfig + var process *sign.ProcessConfig for _, item := range sign.App.Sites { if item.ID == c.Params("site") { site = item for _, stream := range item.Upstreams { - if stream.ID == c.Params("upstream") { + if stream.ID == c.Params("slug") { upstream = stream + workdir, _ = stream.GetRawURI() + break + } + } + for _, proc := range item.Processes { + if proc.ID == c.Params("slug") { + process = proc + workdir = proc.Workdir break } } @@ -27,9 +37,9 @@ func doPublish(c *fiber.Ctx) error { } } - if upstream == nil { + if upstream == nil && process == nil { return fiber.ErrNotFound - } else if upstream.GetType() != sign.UpstreamTypeFile { + } else if upstream != nil && upstream.GetType() != sign.UpstreamTypeFile { return fiber.ErrUnprocessableEntity } @@ -37,8 +47,6 @@ func doPublish(c *fiber.Ctx) error { process.StopProcess() } - workdir, _ := upstream.GetRawURI() - if c.Query("overwrite", "yes") == "yes" { files, _ := filepath.Glob(filepath.Join(workdir, "*")) for _, file := range files { diff --git a/pkg/cmd/rds/deploy/commands.go b/pkg/cmd/rds/deploy/commands.go index 2db375a..46c1202 100644 --- a/pkg/cmd/rds/deploy/commands.go +++ b/pkg/cmd/rds/deploy/commands.go @@ -70,10 +70,10 @@ var DeployCommands = []*cli.Command{ BasicAuth("RoadSign CLI", server.Credential) var mistake error - if status, _, err := client.Bytes(); len(err) > 0 { + if status, data, err := client.Bytes(); len(err) > 0 { mistake = fmt.Errorf("failed to publish to remote: %q", err) } else if status != 200 { - mistake = fmt.Errorf("server rejected request, status code %d", status) + mistake = fmt.Errorf("server rejected request, status code %d, response %s", status, string(data)) } // Cleanup diff --git a/pkg/sign/pm.go b/pkg/sign/pm.go index 966263b..ce86cf4 100644 --- a/pkg/sign/pm.go +++ b/pkg/sign/pm.go @@ -20,7 +20,6 @@ func (v *ProcessConfig) BootProcess() error { if v.Cmd != nil { return nil } - if err := v.PreapreProcess(); err != nil { return err } @@ -69,8 +68,13 @@ func (v *ProcessConfig) StartProcess() error { func (v *ProcessConfig) StopProcess() error { if v.Cmd != nil && v.Cmd.Process != nil { - return v.Cmd.Process.Signal(os.Interrupt) - } else { - return nil + if err := v.Cmd.Process.Signal(os.Interrupt); err != nil { + v.Cmd.Process.Kill() + return err + } else { + v.Cmd = nil + } } + + return nil } diff --git a/pkg/sign/router.go b/pkg/sign/router.go index e23794d..0336aaf 100644 --- a/pkg/sign/router.go +++ b/pkg/sign/router.go @@ -22,6 +22,8 @@ func (v *AppConfig) Forward(ctx *fiber.Ctx, site *SiteConfig) error { if err := process.BootProcess(); err != nil { log.Warn().Err(err).Msgf("An error occurred when booting process (%s) for %s", process.ID, site.ID) return fiber.ErrBadGateway + } else { + log.Debug().Msg("process is alive!") } } diff --git a/settings.yml b/settings.yml index 76f6d92..99b4565 100644 --- a/settings.yml +++ b/settings.yml @@ -10,7 +10,7 @@ hypertext: key: ./cert.key pem: ./cert.pem limitation: - max_body_size: -1 + max_body_size: 536870912 max_qps: -1 ports: - :8000 diff --git a/test/benchmark/data/.gitignore b/test/benchmark/data/.gitignore index 648365f..133f59a 100644 --- a/test/benchmark/data/.gitignore +++ b/test/benchmark/data/.gitignore @@ -1,2 +1,2 @@ -/.output -/.spa \ No newline at end of file +/ssr +/spa \ No newline at end of file diff --git a/test/benchmark/roadsign-spa/settings.yml b/test/benchmark/roadsign-spa/settings.yml index 07eb04e..9e55233 100644 --- a/test/benchmark/roadsign-spa/settings.yml +++ b/test/benchmark/roadsign-spa/settings.yml @@ -9,7 +9,7 @@ hypertext: key: ./cert.key pem: ./cert.pem limitation: - max_body_size: -1 + max_body_size: 536870912 max_qps: -1 ports: - :8000 diff --git a/test/benchmark/roadsign-ssr/config/example.yaml b/test/benchmark/roadsign-ssr/config/example.yaml index 8af1f24..b061b3f 100644 --- a/test/benchmark/roadsign-ssr/config/example.yaml +++ b/test/benchmark/roadsign-ssr/config/example.yaml @@ -8,5 +8,5 @@ upstreams: uri: http://localhost:3000 processes: - id: nuxt-ssr - workdir: ../data + workdir: ../data/ssr command: ["node", ".output/server/index.mjs"] diff --git a/test/benchmark/roadsign-ssr/settings.yml b/test/benchmark/roadsign-ssr/settings.yml index 07eb04e..9e55233 100644 --- a/test/benchmark/roadsign-ssr/settings.yml +++ b/test/benchmark/roadsign-ssr/settings.yml @@ -9,7 +9,7 @@ hypertext: key: ./cert.key pem: ./cert.pem limitation: - max_body_size: -1 + max_body_size: 536870912 max_qps: -1 ports: - :8000 diff --git a/test/benchmark/roadsign-with-prefork/settings.yml b/test/benchmark/roadsign-with-prefork/settings.yml index c16dc22..9ceb4a0 100644 --- a/test/benchmark/roadsign-with-prefork/settings.yml +++ b/test/benchmark/roadsign-with-prefork/settings.yml @@ -9,7 +9,7 @@ hypertext: key: ./cert.key pem: ./cert.pem limitation: - max_body_size: -1 + max_body_size: 536870912 max_qps: -1 ports: - :8000 diff --git a/test/benchmark/roadsign/settings.yml b/test/benchmark/roadsign/settings.yml index 07eb04e..9e55233 100644 --- a/test/benchmark/roadsign/settings.yml +++ b/test/benchmark/roadsign/settings.yml @@ -9,7 +9,7 @@ hypertext: key: ./cert.key pem: ./cert.pem limitation: - max_body_size: -1 + max_body_size: 536870912 max_qps: -1 ports: - :8000