feat: init
This commit is contained in:
71
modules/web/route_version.go
Normal file
71
modules/web/route_version.go
Normal file
@@ -0,0 +1,71 @@
|
||||
package web
|
||||
|
||||
import (
|
||||
"io/fs"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/gofiber/fiber/v3"
|
||||
"github.com/gofiber/utils/v2"
|
||||
)
|
||||
|
||||
func (s *WebServer) routeGetVersion(c fiber.Ctx) error {
|
||||
files := []string{}
|
||||
error := filepath.WalkDir(config.Path, func(path string, d fs.DirEntry, err error) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if d.IsDir() {
|
||||
return nil
|
||||
}
|
||||
|
||||
if strings.HasPrefix(path, filepath.Join(config.Path, ".git/")) {
|
||||
return nil
|
||||
}
|
||||
|
||||
if strings.HasPrefix(path, filepath.Join(config.Path, "boot/")) {
|
||||
return nil
|
||||
}
|
||||
|
||||
if strings.ToLower(path) == strings.ToLower(filepath.Join(config.Path, "README.md")) {
|
||||
return nil
|
||||
}
|
||||
|
||||
if strings.ToLower(path) == strings.ToLower(filepath.Join(config.Path, "main.js")) {
|
||||
return nil
|
||||
}
|
||||
|
||||
if strings.ToLower(path) == strings.ToLower(filepath.Join(config.Path, "project.json")) {
|
||||
return nil
|
||||
}
|
||||
|
||||
if path == config.Path {
|
||||
return nil
|
||||
}
|
||||
|
||||
files = append(files, strings.Replace(path, config.Path+"/", "", -1))
|
||||
return nil
|
||||
})
|
||||
if error != nil {
|
||||
return error
|
||||
}
|
||||
|
||||
files = append(files, "version.txt")
|
||||
return c.JSON(map[string]interface{}{
|
||||
"version": config.Version,
|
||||
"files": files,
|
||||
})
|
||||
}
|
||||
|
||||
func (s *WebServer) routeGetVersionFile(c fiber.Ctx) error {
|
||||
file := c.Params("+")
|
||||
c.Response().Header.SetCanonical(
|
||||
utils.UnsafeBytes(fiber.HeaderContentDisposition),
|
||||
utils.UnsafeBytes(`attachment;`),
|
||||
)
|
||||
if file == "version.txt" {
|
||||
return c.SendString(config.Version)
|
||||
}
|
||||
return c.SendFile(filepath.Join(config.Path, file), false)
|
||||
}
|
||||
Reference in New Issue
Block a user