Merge pull request #1032 from trheyi/main

Deprecate studio API functions and comment out implementation details
This commit is contained in:
Max 2025-07-22 17:41:30 +08:00 committed by GitHub
commit 1589380d38
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -2,20 +2,9 @@ package studio
import ( import (
"fmt" "fmt"
"net"
"net/http"
"os"
"os/signal"
"syscall"
"github.com/gin-gonic/gin"
"github.com/yaoapp/gou/application"
"github.com/yaoapp/gou/fs" "github.com/yaoapp/gou/fs"
"github.com/yaoapp/gou/fs/dsl"
v8 "github.com/yaoapp/gou/runtime/v8"
"github.com/yaoapp/kun/log"
"github.com/yaoapp/yao/config" "github.com/yaoapp/yao/config"
"github.com/yaoapp/yao/share"
) )
var shutdownSignal = make(chan bool, 1) var shutdownSignal = make(chan bool, 1)
@ -31,59 +20,59 @@ type cfunc struct {
func Start(cfg config.Config) (err error) { func Start(cfg config.Config) (err error) {
return fmt.Errorf("studio is deprecated") return fmt.Errorf("studio is deprecated")
// recive interrupt signal // // recive interrupt signal
interrupt := make(chan os.Signal, 1) // interrupt := make(chan os.Signal, 1)
signal.Notify(interrupt, os.Interrupt, syscall.SIGTERM, syscall.SIGQUIT) // signal.Notify(interrupt, os.Interrupt, syscall.SIGTERM, syscall.SIGQUIT)
errCh := make(chan error, 1) // errCh := make(chan error, 1)
// Set router // // Set router
router := gin.New() // router := gin.New()
setRouter(router) // setRouter(router)
// Server setting // // Server setting
addr := fmt.Sprintf("%s:%d", cfg.Host, cfg.Studio.Port) // addr := fmt.Sprintf("%s:%d", cfg.Host, cfg.Studio.Port)
srv := &http.Server{ // srv := &http.Server{
Addr: addr, // Addr: addr,
Handler: router, // Handler: router,
} // }
// Listen // // Listen
l, err := net.Listen("tcp", addr) // l, err := net.Listen("tcp", addr)
if err != nil { // if err != nil {
return err // return err
} // }
defer func() { // defer func() {
log.Info("[Studio] %s Close Serve", addr) // log.Info("[Studio] %s Close Serve", addr)
err = srv.Close() // err = srv.Close()
if err != nil { // if err != nil {
log.Error("[Studio] Close Serve Error (%v)", err) // log.Error("[Studio] Close Serve Error (%v)", err)
} // }
}() // }()
// start serve // // start serve
go func() { // go func() {
log.Info("[Studio] Starting: %s", addr) // log.Info("[Studio] Starting: %s", addr)
if err := srv.Serve(l); err != nil && err != http.ErrServerClosed { // if err := srv.Serve(l); err != nil && err != http.ErrServerClosed {
errCh <- err // errCh <- err
} // }
}() // }()
select { // select {
case <-shutdownSignal: // case <-shutdownSignal:
log.Info("[Studio] %s Exit (Manual)", addr) // log.Info("[Studio] %s Exit (Manual)", addr)
return err // return err
case <-interrupt: // case <-interrupt:
log.Info("[Studio] %s Exit (Interrupt) ", addr) // log.Info("[Studio] %s Exit (Interrupt) ", addr)
return err // return err
case err := <-errCh: // case err := <-errCh:
log.Error("[Studio] %s Error (%v)", addr, err) // log.Error("[Studio] %s Error (%v)", addr, err)
return err // return err
} // }
} }
// Stop stop the studio api server // Stop stop the studio api server
@ -95,28 +84,28 @@ func Stop() {
func Load(cfg config.Config) error { func Load(cfg config.Config) error {
return fmt.Errorf("studio is deprecated") return fmt.Errorf("studio is deprecated")
err := loadDSL(cfg) // err := loadDSL(cfg)
if err != nil { // if err != nil {
return err // return err
} // }
return loadScripts() // return loadScripts()
} }
func loadDSL(cfg config.Config) error { func loadDSL(cfg config.Config) error {
return fmt.Errorf("studio is deprecated") return fmt.Errorf("studio is deprecated")
dslDenyList := []string{cfg.DataRoot} // dslDenyList := []string{cfg.DataRoot}
dfs = dsl.New(cfg.AppSource).DenyAbs(dslDenyList...) // dfs = dsl.New(cfg.AppSource).DenyAbs(dslDenyList...)
return nil // return nil
} }
func loadScripts() error { func loadScripts() error {
return fmt.Errorf("studio is deprecated") return fmt.Errorf("studio is deprecated")
exts := []string{"*.js"} // exts := []string{"*.js"}
return application.App.Walk("studio", func(root, file string, isdir bool) error { // return application.App.Walk("studio", func(root, file string, isdir bool) error {
if isdir { // if isdir {
return nil // return nil
} // }
_, err := v8.LoadRoot(file, share.ID(root, file)) // _, err := v8.LoadRoot(file, share.ID(root, file))
return err // return err
}, exts...) // }, exts...)
} }