Добавление удаленного вызова функции из клиента
continuous-integration/drone/tag Build is passing
Details
continuous-integration/drone/tag Build is passing
Details
This commit is contained in:
parent
2f5388989f
commit
f78cf77a8d
|
@ -6,7 +6,7 @@ platform:
|
|||
arch: amd64
|
||||
steps:
|
||||
- name: build
|
||||
image: golang:1.20.2-alpine3.17
|
||||
image: golang:1.20.3-alpine3.17
|
||||
commands:
|
||||
- go get
|
||||
- CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -a -installsuffix cgo -o ./yt-cli-linux-386 ./main.go
|
||||
|
@ -82,4 +82,4 @@ steps:
|
|||
|
||||
trigger:
|
||||
event:
|
||||
- tag
|
||||
- tag
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
.vscode
|
||||
__debug_bin
|
||||
yt-cli
|
||||
fax-server-asterisk.yml
|
||||
yt-cli\
|
||||
!.drone.yml
|
||||
/*.yml
|
||||
/*.conf
|
|
@ -0,0 +1,10 @@
|
|||
package lib
|
||||
|
||||
func CallFunction(funcName string) {
|
||||
if funcName == "" {
|
||||
panic(`should be set name function for call`)
|
||||
}
|
||||
if _, _, err := client.Call(funcName, nil, AppConfig.Payload); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
|
@ -3,6 +3,7 @@ package lib
|
|||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
|
@ -35,6 +36,9 @@ type Config struct {
|
|||
|
||||
VerifyAccessToken bool
|
||||
VerifyAccessTokenPath string
|
||||
|
||||
CallFunction string // Вызываемая функция
|
||||
Payload []byte // Бинарные данные
|
||||
}
|
||||
|
||||
var AppConfig Config
|
||||
|
@ -137,13 +141,36 @@ func parseArgs(args []string) {
|
|||
AppConfig.Filename = args[1]
|
||||
parseArgs(args[2:])
|
||||
} else {
|
||||
panic(fmt.Errorf("error count arguments for parameters file"))
|
||||
panic(fmt.Errorf("error count arguments for parameters upload-settings"))
|
||||
}
|
||||
case "--token":
|
||||
if len(args) > 1 {
|
||||
AppConfig.VerifyAccessToken = true
|
||||
AppConfig.VerifyAccessTokenPath = args[1]
|
||||
parseArgs(args[2:])
|
||||
} else {
|
||||
panic(fmt.Errorf("error count arguments for parameters token"))
|
||||
}
|
||||
case "--call":
|
||||
if len(args) > 1 {
|
||||
AppConfig.CallFunction = args[1]
|
||||
parseArgs(args[2:])
|
||||
} else {
|
||||
panic(fmt.Errorf("error count arguments for parameters call"))
|
||||
}
|
||||
case "--file":
|
||||
if len(args) > 1 {
|
||||
var fullpath string
|
||||
var err error
|
||||
fullpath, err = filepath.Abs(args[1])
|
||||
if err != nil {
|
||||
panic(fmt.Errorf("file not found"))
|
||||
}
|
||||
AppConfig.Payload, err = os.ReadFile(fullpath)
|
||||
if err != nil {
|
||||
panic(fmt.Errorf("file not found"))
|
||||
}
|
||||
parseArgs(args[2:])
|
||||
} else {
|
||||
panic(fmt.Errorf("error count arguments for parameters file"))
|
||||
}
|
||||
|
@ -168,12 +195,14 @@ func PrintHelp() {
|
|||
--set <name> <value> - Установить параметр
|
||||
--get <name> - получить значение параметра
|
||||
--domain <name> - Доменное имя
|
||||
--function <name> <path> - установить функцию для указанного ройтинга
|
||||
--function <name> <path> - установить функцию для указанного роутинга
|
||||
--method <name> - метод, на который присваивается функция
|
||||
--proxy <path> <proxyAddr> - проксирование запроса на другой адрес по указанному пути
|
||||
--static-file <path> <file> - установка статичного файла по конкретному пути
|
||||
--static-dir <path> <dir> - установка статичных файлов с вложенными файлами по конкретному пути рекурсивно с вложениями
|
||||
--upload-settings <file> - файл настроек для массовой установки значений
|
||||
--token <path> - установить проверку JWT для указанного пути и его вложений
|
||||
--call <func-name> - вызвать функцию, которой передаются данные из файла в --file. Если нет параметра --file, данные не передаются
|
||||
--file <path/name>
|
||||
`)
|
||||
}
|
||||
|
|
2
main.go
2
main.go
|
@ -35,6 +35,8 @@ func main() {
|
|||
lib.ConfigUpload(lib.AppConfig.Filename)
|
||||
} else if lib.AppConfig.VerifyAccessToken {
|
||||
lib.SetToken(lib.AppConfig.Domain, lib.AppConfig.VerifyAccessTokenPath)
|
||||
} else if lib.AppConfig.CallFunction != "" {
|
||||
lib.CallFunction(lib.AppConfig.CallFunction)
|
||||
} else {
|
||||
lib.PrintHelp()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue