chore: 完善个模块打包
This commit is contained in:
@@ -68,6 +68,7 @@ func makeCmd() *cobra.Command {
|
||||
makecmd.Proxy(),
|
||||
makecmd.Seafile(),
|
||||
makecmd.App(),
|
||||
makecmd.Apps(),
|
||||
makecmd.Client(),
|
||||
)
|
||||
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package makecmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
@@ -9,6 +12,9 @@ import (
|
||||
func ALL() *cobra.Command {
|
||||
var (
|
||||
_workdir string
|
||||
_vendor string
|
||||
_version string
|
||||
_replica int
|
||||
)
|
||||
|
||||
_cmd := &cobra.Command{
|
||||
@@ -20,10 +26,6 @@ func ALL() *cobra.Command {
|
||||
mk = maker.NewMaker(_workdir)
|
||||
)
|
||||
|
||||
if err = mk.Images(cmd.Context()); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.K0s(cmd.Context()); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -92,31 +94,35 @@ func ALL() *cobra.Command {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.AppOEM(cmd.Context(), "standard", 2); err != nil {
|
||||
if err = mk.AppOEM(cmd.Context(), _version, _vendor, _replica); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.AppUser(cmd.Context(), 2); err != nil {
|
||||
if err = mk.AppUser(cmd.Context(), _version, _replica); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.AppClient(cmd.Context(), 2); err != nil {
|
||||
if err = mk.AppClient(cmd.Context(), _version, _replica); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.AppGateway(cmd.Context(), 2); err != nil {
|
||||
if err = mk.AppGateway(cmd.Context(), _version, _replica); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.AppFront(cmd.Context(), "standard", 2); err != nil {
|
||||
if err = mk.AppFront(cmd.Context(), _version, _vendor, _replica); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.AppMie(cmd.Context(), 2); err != nil {
|
||||
if err = mk.AppMie(cmd.Context(), _version, _replica); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.AppNginx(cmd.Context()); err != nil {
|
||||
if err = mk.AppNginx(cmd.Context(), _version, _vendor, _replica, true); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.AppHelper(cmd.Context(), _version, _vendor, _replica); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -124,7 +130,10 @@ func ALL() *cobra.Command {
|
||||
},
|
||||
}
|
||||
|
||||
_cmd.PersistentFlags().StringVar(&_workdir, "workdir", opt.DefaultWorkdir, "Work directory")
|
||||
_cmd.Flags().StringVar(&_workdir, "workdir", opt.DefaultWorkdir, "Work directory")
|
||||
_cmd.Flags().StringVar(&_vendor, "vendor", "standard", "Vendor name")
|
||||
_cmd.Flags().StringVar(&_version, "version", fmt.Sprintf("v2.2.0-%d", time.Now().Unix()), "Version, default: v2.2.0-<timestamp>")
|
||||
_cmd.Flags().IntVar(&_replica, "replica", 2, "Replica count")
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
package makecmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"yizhisec.com/hsv2/forge/internal/controller/maker"
|
||||
"yizhisec.com/hsv2/forge/internal/opt"
|
||||
"yizhisec.com/hsv2/forge/pkg/model"
|
||||
)
|
||||
|
||||
func App() *cobra.Command {
|
||||
@@ -20,14 +25,96 @@ func App() *cobra.Command {
|
||||
appOEM(),
|
||||
appFront(),
|
||||
appNginx(),
|
||||
appHelper(),
|
||||
)
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
func Apps() *cobra.Command {
|
||||
var (
|
||||
_pkg bool
|
||||
_replica int
|
||||
_vendor string
|
||||
_version string
|
||||
)
|
||||
|
||||
_cmd := &cobra.Command{
|
||||
Use: "apps",
|
||||
Short: "Make Apps(user, client, gateway, mie, nginx, etc...)",
|
||||
PreRunE: func(cmd *cobra.Command, args []string) error {
|
||||
if model.GetVendor(_vendor) == nil {
|
||||
return fmt.Errorf("invalid vendor: %s", _vendor)
|
||||
}
|
||||
|
||||
return nil
|
||||
},
|
||||
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
var (
|
||||
err error
|
||||
mk = maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
)
|
||||
|
||||
if err = mk.AppUser(cmd.Context(), _version, _replica); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.AppClient(cmd.Context(), _version, _replica); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.AppGateway(cmd.Context(), _version, _replica); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.AppMie(cmd.Context(), _version, _replica); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.AppFront(cmd.Context(), _version, _vendor, _replica); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.AppNginx(cmd.Context(), _version, _vendor, _replica, false); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.AppOEM(cmd.Context(), _version, _vendor, _replica); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = mk.AppHelper(cmd.Context(), _version, _vendor, _replica); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if _pkg {
|
||||
var (
|
||||
dir = filepath.Join(opt.Cfg.Make.Dir, "app")
|
||||
_cmd = "7za a -pRrPt7Uo9WM1dkXOJmHps56T8BZY2qA4g -mhe=on apps.pkg *"
|
||||
)
|
||||
|
||||
if err = mk.RunCommand(cmd.Context(), dir, _cmd); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
},
|
||||
}
|
||||
|
||||
_cmd.Flags().BoolVar(&_pkg, "pkg", false, "Make upgrade pkg")
|
||||
_cmd.Flags().IntVar(&_replica, "replica-count", 2, "Replica count")
|
||||
_cmd.Flags().StringVar(&_vendor, "vendor", "standard", "Vendor name")
|
||||
_cmd.Flags().StringVar(&_version, "version", fmt.Sprintf("v2.2.0-%d", time.Now().Unix()), "Apps version, default: v2.2.0-<timestamp>")
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
func appUser() *cobra.Command {
|
||||
var (
|
||||
replica int
|
||||
replica int
|
||||
_version string
|
||||
)
|
||||
|
||||
_cmd := &cobra.Command{
|
||||
@@ -35,18 +122,20 @@ func appUser() *cobra.Command {
|
||||
Short: "Make User App",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.AppUser(cmd.Context(), replica)
|
||||
return mk.AppUser(cmd.Context(), _version, replica)
|
||||
},
|
||||
}
|
||||
|
||||
_cmd.Flags().IntVar(&replica, "replica-count", 2, "Replica count")
|
||||
_cmd.Flags().StringVar(&_version, "version", fmt.Sprintf("v2.2.0-%d", time.Now().Unix()), "App user version, default: v2.2.0-<timestamp>")
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
func appClient() *cobra.Command {
|
||||
var (
|
||||
replica int
|
||||
replica int
|
||||
_version string
|
||||
)
|
||||
|
||||
_cmd := &cobra.Command{
|
||||
@@ -54,18 +143,20 @@ func appClient() *cobra.Command {
|
||||
Short: "Make Client App",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.AppClient(cmd.Context(), replica)
|
||||
return mk.AppClient(cmd.Context(), _version, replica)
|
||||
},
|
||||
}
|
||||
|
||||
_cmd.Flags().IntVar(&replica, "replica-count", 2, "Replica count")
|
||||
_cmd.Flags().StringVar(&_version, "version", fmt.Sprintf("v2.2.0-%d", time.Now().Unix()), "App client version, default: v2.2.0-<timestamp>")
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
func appGateway() *cobra.Command {
|
||||
var (
|
||||
replica int
|
||||
replica int
|
||||
_version string
|
||||
)
|
||||
|
||||
_cmd := &cobra.Command{
|
||||
@@ -73,18 +164,20 @@ func appGateway() *cobra.Command {
|
||||
Short: "Make Gateway App",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.AppGateway(cmd.Context(), replica)
|
||||
return mk.AppGateway(cmd.Context(), _version, replica)
|
||||
},
|
||||
}
|
||||
|
||||
_cmd.Flags().IntVar(&replica, "replica-count", 2, "Replica count")
|
||||
_cmd.Flags().StringVar(&_version, "version", fmt.Sprintf("v2.2.0-%d", time.Now().Unix()), "App gateway version, default: v2.2.0-<timestamp>")
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
func appMie() *cobra.Command {
|
||||
var (
|
||||
replica int
|
||||
replica int
|
||||
_version string
|
||||
)
|
||||
|
||||
_cmd := &cobra.Command{
|
||||
@@ -92,19 +185,21 @@ func appMie() *cobra.Command {
|
||||
Short: "Make Mie App",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.AppMie(cmd.Context(), replica)
|
||||
return mk.AppMie(cmd.Context(), _version, replica)
|
||||
},
|
||||
}
|
||||
|
||||
_cmd.Flags().IntVar(&replica, "replica-count", 2, "Replica count")
|
||||
_cmd.Flags().StringVar(&_version, "version", fmt.Sprintf("v2.2.0-%d", time.Now().Unix()), "App mie version, default: v2.2.0-<timestamp>")
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
func appOEM() *cobra.Command {
|
||||
var (
|
||||
replica int
|
||||
vendor string
|
||||
replica int
|
||||
vendor string
|
||||
_version string
|
||||
)
|
||||
|
||||
_cmd := &cobra.Command{
|
||||
@@ -112,20 +207,22 @@ func appOEM() *cobra.Command {
|
||||
Short: "Make OEM App",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.AppOEM(cmd.Context(), vendor, replica)
|
||||
return mk.AppOEM(cmd.Context(), _version, vendor, replica)
|
||||
},
|
||||
}
|
||||
|
||||
_cmd.Flags().IntVar(&replica, "replica-count", 2, "Replica count")
|
||||
_cmd.Flags().StringVar(&vendor, "vendor", "standard", "Vendor name")
|
||||
_cmd.Flags().StringVar(&_version, "version", fmt.Sprintf("v2.2.0-%d", time.Now().Unix()), "App oem version, default: v2.2.0-<timestamp>")
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
func appFront() *cobra.Command {
|
||||
var (
|
||||
replica int
|
||||
vendor string
|
||||
replica int
|
||||
vendor string
|
||||
_version string
|
||||
)
|
||||
|
||||
_cmd := &cobra.Command{
|
||||
@@ -133,12 +230,13 @@ func appFront() *cobra.Command {
|
||||
Short: "Make Front App",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.AppFront(cmd.Context(), vendor, replica)
|
||||
return mk.AppFront(cmd.Context(), _version, vendor, replica)
|
||||
},
|
||||
}
|
||||
|
||||
_cmd.Flags().IntVar(&replica, "replica-count", 2, "Replica count")
|
||||
_cmd.Flags().StringVar(&vendor, "vendor", "standard", "Vendor name")
|
||||
_cmd.Flags().StringVar(&_version, "version", fmt.Sprintf("v2.2.0-%d", time.Now().Unix()), "App front version, default: v2.2.0-<timestamp>")
|
||||
|
||||
return _cmd
|
||||
}
|
||||
@@ -146,26 +244,47 @@ func appFront() *cobra.Command {
|
||||
func appNginx() *cobra.Command {
|
||||
var (
|
||||
replica int
|
||||
disableSeafile bool
|
||||
vendor string
|
||||
_version string
|
||||
_include_image bool
|
||||
)
|
||||
|
||||
_cmd := &cobra.Command{
|
||||
Use: "nginx",
|
||||
Short: "Make Nginx App",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
opts := []maker.NginxOpt{
|
||||
maker.WithNginxReplica(replica),
|
||||
}
|
||||
if disableSeafile {
|
||||
opts = append(opts, maker.WithoutNginxSeafile())
|
||||
}
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.AppNginx(cmd.Context(), opts...)
|
||||
return mk.AppNginx(cmd.Context(), _version, vendor, replica, _include_image)
|
||||
},
|
||||
}
|
||||
|
||||
_cmd.Flags().IntVar(&replica, "replica-count", 2, "Replica count")
|
||||
_cmd.Flags().BoolVar(&disableSeafile, "disable-seafile", false, "Disable seafile")
|
||||
_cmd.Flags().StringVar(&vendor, "vendor", "standard", "Vendor name")
|
||||
_cmd.Flags().StringVar(&_version, "version", fmt.Sprintf("v2.2.0-%d", time.Now().Unix()), "App nginx version, default: v2.2.0-<timestamp>")
|
||||
_cmd.Flags().BoolVar(&_include_image, "include-image", false, "Include image")
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
func appHelper() *cobra.Command {
|
||||
var (
|
||||
_replica int
|
||||
_vendor string
|
||||
_version string
|
||||
)
|
||||
|
||||
_cmd := &cobra.Command{
|
||||
Use: "helper",
|
||||
Short: "Make Helper App",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.AppHelper(cmd.Context(), _version, _vendor, _replica)
|
||||
},
|
||||
}
|
||||
|
||||
_cmd.Flags().IntVar(&_replica, "replica-count", 2, "Replica count")
|
||||
_cmd.Flags().StringVar(&_vendor, "vendor", "standard", "Vendor name")
|
||||
_cmd.Flags().StringVar(&_version, "version", fmt.Sprintf("v2.2.0-%d", time.Now().Unix()), "App helper version, default: v2.2.0-<timestamp>")
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
@@ -5,6 +5,9 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
|
||||
"gitea.loveuer.com/yizhisec/pkg3/logger"
|
||||
"github.com/spf13/cobra"
|
||||
@@ -23,21 +26,26 @@ func Client() *cobra.Command {
|
||||
clientMac(),
|
||||
clientWin(),
|
||||
clientLinux(),
|
||||
clientBaseImage(),
|
||||
)
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
func clientMac() *cobra.Command {
|
||||
func clientWin() *cobra.Command {
|
||||
var (
|
||||
_version string
|
||||
_pkg bool
|
||||
)
|
||||
|
||||
_cmd := &cobra.Command{
|
||||
Use: "mac",
|
||||
Aliases: []string{"macos"},
|
||||
Short: "make client-mac pkg",
|
||||
Use: "win",
|
||||
Short: "make client-win pkg",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
const (
|
||||
DMG_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/hs_appleclient-csgElink/release/2.1.0-std/hybridscope-client-mac.dmg"
|
||||
PKG_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/hs_appleclient-csgElink/release/2.1.0-std/hybridscope-client-mac.pkg"
|
||||
VERSION_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/hs_appleclient/release/2.1.0-std/mac_version.json"
|
||||
ZIP_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/hs_client-csgElink/release/2.1.0-std/hs_client_csgElink.zip"
|
||||
VERSION_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/hs_client-csgElink/release/2.1.0-std/windows_version.json"
|
||||
RC_JSON_URL = "https://artifactory.yizhisec.com:443/artifactory/filestore/hsv2/win/win-rc.json"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -49,39 +57,9 @@ func clientMac() *cobra.Command {
|
||||
return err
|
||||
}
|
||||
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.ClientPKG(
|
||||
cmd.Context(),
|
||||
"mac",
|
||||
version,
|
||||
"/api/v2_2/_client/mac",
|
||||
maker.WithClientPKGDownload(DMG_URL, "hybridscope-client-mac.dmg"),
|
||||
maker.WithClientPKGDownload(PKG_URL, "hybridscope-client-mac.pkg"),
|
||||
maker.WithClientPKGDownload(VERSION_URL, "version.json"),
|
||||
)
|
||||
},
|
||||
}
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
func clientWin() *cobra.Command {
|
||||
_cmd := &cobra.Command{
|
||||
Use: "win",
|
||||
Short: "make client-win pkg",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
const (
|
||||
ZIP_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/hs_client-yizhianquan/release/2.1.0-std/hs_client.zip"
|
||||
VERSION_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/hs_client-yizhianquan/release/2.1.0-std/windows_version.json"
|
||||
)
|
||||
|
||||
var (
|
||||
err error
|
||||
version string
|
||||
)
|
||||
|
||||
if version, err = clientVersion(VERSION_URL); err != nil {
|
||||
return err
|
||||
if _version != "" {
|
||||
logger.InfoCtx(cmd.Context(), "clientWin: using manual version: %s => %s", version, _version)
|
||||
version = _version
|
||||
}
|
||||
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
@@ -90,30 +68,51 @@ func clientWin() *cobra.Command {
|
||||
"win",
|
||||
version,
|
||||
"/api/v2_2/_client/win",
|
||||
maker.WithClientPkgMakePkg(_pkg),
|
||||
maker.WithClientPKGDownload(ZIP_URL, "hs_client.zip"),
|
||||
maker.WithClientPKGDownload(VERSION_URL, "version.json"),
|
||||
maker.WithClientPKGCMD("unzip /data/hs_client.zip"),
|
||||
maker.WithClientPKGCMD("mv resources/app.7z /data/app.7z"),
|
||||
maker.WithClientPKGCMD("mv resources/hybridscope_offline_installer.exe /data/hybridscope_offline_installer.exe"),
|
||||
maker.WithClientPKGCMD("mv resources/hybridscope-client-setup-zh.exe /data/hybridscope-client-setup-zh.exe"),
|
||||
maker.WithClientPKGCMD("mv resources/hybridscope-client-setup-en.exe /data/hybridscope-client-setup-en.exe"),
|
||||
maker.WithClientPKGCMD("rm -rf /data/hs_client.zip"),
|
||||
maker.WithClientPKGCMD("rm -rf resources"),
|
||||
maker.WithClientPKGDownload(RC_JSON_URL, "rc.json"),
|
||||
maker.WithClientPKGCMDs("unzip /data/hs_client.zip"),
|
||||
maker.WithClientPKGCMDs("mv resources/app.7z /data/app.7z"),
|
||||
maker.WithClientPKGCMDs("7z x /data/app.7z -o/tmp/app"),
|
||||
maker.WithClientPKGCMDs("rm -rf /data/app.7z"),
|
||||
maker.WithClientPKGCMDs("cp /data/version.json /tmp/app/x64/config/windows_version.json"),
|
||||
maker.WithClientPKGCMDs("cp resources/hybridscope-client-setup-zh.exe /tmp/app/x64/hybridscope-client-setup.exe"),
|
||||
maker.WithClientPKGCMDs("7z a /data/app.7z /tmp/app/x64"),
|
||||
maker.WithClientPKGCMDs("rm -rf /tmp/app"),
|
||||
maker.WithClientPKGCMDs("md5sum /data/app.7z | awk '{print $1}' > /data/app.7z.md5"),
|
||||
maker.WithClientPKGCMDs(`sh -c 'echo "{\"url\":\"/api/v2_2/_client/win/app.7z\",\"md5\":\"$(cat /data/app.7z.md5)\"}" > /data/check.json'`),
|
||||
maker.WithClientPKGCMDs("mv resources/hybridscope_offline_installer.exe /data/hybridscope_offline_installer.exe"),
|
||||
maker.WithClientPKGCMDs("mv resources/hybridscope-client-setup-zh.exe /data/hybridscope-client-setup-zh.exe"),
|
||||
maker.WithClientPKGCMDs("mv resources/hybridscope-client-setup-en.exe /data/hybridscope-client-setup-en.exe"),
|
||||
maker.WithClientPKGCMDs("rm -rf /data/hs_client.zip"),
|
||||
maker.WithClientPKGCMDs("rm -rf resources"),
|
||||
)
|
||||
},
|
||||
}
|
||||
|
||||
_cmd.Flags().StringVar(&_version, "version", "", "手动指定版本")
|
||||
_cmd.Flags().BoolVar(&_pkg, "pkg", false, "是否生成升级 pkg")
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
func clientLinux() *cobra.Command {
|
||||
func clientMac() *cobra.Command {
|
||||
|
||||
var (
|
||||
_version string
|
||||
_pkg bool
|
||||
)
|
||||
|
||||
_cmd := &cobra.Command{
|
||||
Use: "linux",
|
||||
Short: "make client-linux pkg",
|
||||
Use: "mac",
|
||||
Aliases: []string{"macos"},
|
||||
Short: "make client-mac pkg",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
const (
|
||||
DEB_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/universal-hsclient-linux/release/2.1.0/hscore-linux-2.1.0-csgElink-amd64.deb"
|
||||
VERSION_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/universal-hsclient-linux/release/2.1.0/hscore-linux-2.1.0-std-amd64.json"
|
||||
DMG_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/hs_appleclient-csgElink/release/2.1.0-std/hybridscope-client-mac.dmg"
|
||||
PKG_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/hs_appleclient-csgElink/release/2.1.0-std/hybridscope-client-mac.pkg"
|
||||
VERSION_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/hs_appleclient-csgElink/release/2.1.0-std/mac_version.json"
|
||||
// std: VERSION_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/hs_appleclient/release/2.1.0-std/mac_version.json"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -125,18 +124,76 @@ func clientLinux() *cobra.Command {
|
||||
return err
|
||||
}
|
||||
|
||||
if _version != "" {
|
||||
logger.InfoCtx(cmd.Context(), "clientMac: using manual version: %s => %s", version, _version)
|
||||
version = _version
|
||||
}
|
||||
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.ClientPKG(
|
||||
cmd.Context(),
|
||||
"mac",
|
||||
version,
|
||||
"/api/v2_2/_client/mac",
|
||||
maker.WithClientPkgMakePkg(_pkg),
|
||||
maker.WithClientPKGDownload(DMG_URL, "hybridscope-client-mac.dmg"),
|
||||
maker.WithClientPKGDownload(PKG_URL, "hybridscope-client-mac.pkg"),
|
||||
)
|
||||
},
|
||||
}
|
||||
|
||||
_cmd.Flags().StringVar(&_version, "version", "", "手动指定版本")
|
||||
_cmd.Flags().BoolVar(&_pkg, "pkg", false, "是否生成升级 pkg")
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
func clientLinux() *cobra.Command {
|
||||
|
||||
var (
|
||||
_version string
|
||||
_pkg bool
|
||||
)
|
||||
|
||||
_cmd := &cobra.Command{
|
||||
Use: "linux",
|
||||
Short: "make client-linux pkg",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
const (
|
||||
DEB_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/universal-hsclient-linux/release/2.1.0/hscore-linux-2.1.0-csgElink-amd64.deb"
|
||||
VERSION_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/universal-hsclient-linux/release/2.1.0/hscore-linux-2.1.0-csgElink-amd64.json"
|
||||
// std: VERSION_URL = "https://artifactory.yizhisec.com/artifactory/yizhisec-release/universal-hsclient-linux/release/2.1.0/hscore-linux-2.1.0-std-amd64.json"
|
||||
)
|
||||
|
||||
var (
|
||||
err error
|
||||
version string
|
||||
)
|
||||
|
||||
if version, err = clientVersion(VERSION_URL); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if _version != "" {
|
||||
logger.InfoCtx(cmd.Context(), "clientLinux: using manual version: %s => %s", version, _version)
|
||||
version = _version
|
||||
}
|
||||
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.ClientPKG(
|
||||
cmd.Context(),
|
||||
"linux",
|
||||
version,
|
||||
"/api/v2_2/_client/linux",
|
||||
maker.WithClientPkgMakePkg(_pkg),
|
||||
maker.WithClientPKGDownload(DEB_URL, "hybridscope-client-linux.deb"),
|
||||
maker.WithClientPKGDownload(VERSION_URL, "version.json"),
|
||||
)
|
||||
},
|
||||
}
|
||||
|
||||
_cmd.Flags().StringVar(&_version, "version", "", "手动指定版本")
|
||||
_cmd.Flags().BoolVar(&_pkg, "pkg", false, "是否生成升级 pkg")
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
@@ -174,3 +231,68 @@ func clientVersion(_url string) (string, error) {
|
||||
|
||||
return res.Version, nil
|
||||
}
|
||||
|
||||
func clientBaseImage() *cobra.Command {
|
||||
const (
|
||||
dbs = `
|
||||
FROM %s
|
||||
RUN sed -i 's#https\?://dl-cdn.alpinelinux.org/alpine#https://mirrors.tuna.tsinghua.edu.cn/alpine#g' /etc/apk/repositories
|
||||
RUN apk update && apk add curl wget tzdata unzip p7zip
|
||||
ENV TZ=Asia/Shanghai
|
||||
`
|
||||
_command = "docker build -f Dockerfile -t hub.yizhisec.com/hsv2/base/nginx:latest ."
|
||||
)
|
||||
|
||||
var (
|
||||
_push bool
|
||||
)
|
||||
|
||||
_cmd := &cobra.Command{
|
||||
Use: "base",
|
||||
Short: "make client base image",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
var (
|
||||
err error
|
||||
tmpDir = filepath.Join(os.TempDir(), "hsv2-client-base")
|
||||
output []byte
|
||||
)
|
||||
|
||||
if err = os.MkdirAll(tmpDir, 0755); err != nil {
|
||||
return err
|
||||
}
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
dockerfile := filepath.Join(tmpDir, "Dockerfile")
|
||||
if err = os.WriteFile(dockerfile, []byte(fmt.Sprintf(dbs, opt.IMAGE_NGINX)), 0644); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
rc := exec.CommandContext(cmd.Context(), "sh", "-c", _command)
|
||||
rc.Dir = tmpDir
|
||||
|
||||
if output, err = rc.CombinedOutput(); err != nil {
|
||||
logger.Debug("❌ clientBaseImage: build image failed, output = %s, err = %v", string(output), err)
|
||||
return err
|
||||
}
|
||||
|
||||
logger.Debug("☑️ clientBaseImage: build image output = %s", string(output))
|
||||
|
||||
if _push {
|
||||
rc = exec.CommandContext(cmd.Context(), "sh", "-c", "docker push hub.yizhisec.com/hsv2/base/nginx:latest")
|
||||
|
||||
if output, err = rc.CombinedOutput(); err != nil {
|
||||
logger.Debug("❌ clientBaseImage: push image failed, output = %s, err = %v", string(output), err)
|
||||
return err
|
||||
}
|
||||
logger.Debug("☑️ clientBaseImage: push image output = %s", string(output))
|
||||
}
|
||||
|
||||
logger.Info("️✅ clientBaseImage: build image success!!!")
|
||||
return nil
|
||||
},
|
||||
}
|
||||
|
||||
_cmd.Flags().BoolVar(&_push, "push", false, "push image")
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ func Redis() *cobra.Command {
|
||||
cmd.Context(),
|
||||
maker.WithRedisReplicaCount(replicas),
|
||||
maker.WithRedisPassword(password),
|
||||
maker.WithRedisStorage(fmt.Sprintf("%dGi")),
|
||||
maker.WithRedisStorage(fmt.Sprintf("%dGi", storage)),
|
||||
)
|
||||
},
|
||||
}
|
||||
|
||||
@@ -7,15 +7,21 @@ import (
|
||||
)
|
||||
|
||||
func Yosguard() *cobra.Command {
|
||||
var (
|
||||
_pkg bool // make yosguard upgrade pkg
|
||||
)
|
||||
|
||||
_cmd := &cobra.Command{
|
||||
Use: "yosguard",
|
||||
Aliases: []string{"YOS"},
|
||||
Short: "Make Yosguard",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
mk := maker.NewMaker(opt.Cfg.Make.Dir)
|
||||
return mk.Yosguard(cmd.Context())
|
||||
return mk.Yosguard(cmd.Context(), maker.WithYosguardPkg(_pkg))
|
||||
},
|
||||
}
|
||||
|
||||
_cmd.Flags().BoolVar(&_pkg, "pkg", false, "make yosguard upgrade pkg")
|
||||
|
||||
return _cmd
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user