finger update use exe path

This commit is contained in:
M09Ic 2024-07-22 16:33:15 +08:00
parent 7af848a6fd
commit 2b7be8d449

View File

@ -11,7 +11,7 @@ import (
"io" "io"
"net/http" "net/http"
"os" "os"
"path" "path/filepath"
"strings" "strings"
) )
@ -33,7 +33,7 @@ type FingerOptions struct {
Finger bool `long:"finger" description:"Bool, enable active finger detect" config:"finger"` Finger bool `long:"finger" description:"Bool, enable active finger detect" config:"finger"`
FingerUpdate bool `long:"update" description:"Bool, update finger database" config:"update"` FingerUpdate bool `long:"update" description:"Bool, update finger database" config:"update"`
FingerPath string `long:"finger-path" default:"fingers" description:"String, 3rd finger config path" config:"finger-path"` FingerPath string `long:"finger-path" default:"fingers" description:"String, 3rd finger config path" config:"finger-path"`
FingersTemplatesPath string `long:"finger-template" default:"fingers/templates" description:"Bool, use finger templates path" config:"finger-template"` //FingersTemplatesPath string `long:"finger-template" default:"fingers/templates" description:"Bool, use finger templates path" config:"finger-template"`
FingerEngines string `long:"finger-engine" default:"all" description:"String, custom finger engine, e.g. --finger-engine ehole,goby" config:"finger-engine"` FingerEngines string `long:"finger-engine" default:"all" description:"String, custom finger engine, e.g. --finger-engine ehole,goby" config:"finger-engine"`
} }
@ -52,18 +52,17 @@ func (opt *FingerOptions) Validate() error {
return err return err
} }
} }
//if opt.FingersTemplatesPath != DefaultFingerTemplate && !files.IsExist(opt.FingersTemplatesPath) {
if opt.FingersTemplatesPath != DefaultFingerTemplate && !files.IsExist(opt.FingersTemplatesPath) { // err = os.MkdirAll(opt.FingersTemplatesPath, 0755)
err = os.MkdirAll(opt.FingersTemplatesPath, 0755) // if err != nil {
if err != nil { // return err
return err // }
} //} else if !files.IsExist(DefaultFingerTemplate) {
} else if !files.IsExist(DefaultFingerTemplate) { // err = os.MkdirAll(DefaultFingerTemplate, 0755)
err = os.MkdirAll(DefaultFingerTemplate, 0755) // if err != nil {
if err != nil { // return err
return err // }
} //}
}
} }
if opt.FingerEngines != "all" { if opt.FingerEngines != "all" {
@ -121,11 +120,11 @@ func (opt *FingerOptions) UpdateFinger() error {
} }
func (opt *FingerOptions) downloadConfig(name string) (bool, error) { func (opt *FingerOptions) downloadConfig(name string) (bool, error) {
fingerPath, ok := FingerConfigs[name] fingerFile, ok := FingerConfigs[name]
if !ok { if !ok {
return false, fmt.Errorf("unknown engine name") return false, fmt.Errorf("unknown engine name")
} }
url := baseURL + fingerPath url := baseURL + fingerFile
resp, err := http.Get(url) resp, err := http.Get(url)
if err != nil { if err != nil {
return false, err return false, err
@ -137,14 +136,14 @@ func (opt *FingerOptions) downloadConfig(name string) (bool, error) {
} }
content, err := io.ReadAll(resp.Body) content, err := io.ReadAll(resp.Body)
filePath := path.Join(opt.FingerPath, fingerPath) filePath := filepath.Join(files.GetExcPath(), opt.FingerPath, fingerFile)
if files.IsExist(filePath) { if files.IsExist(filePath) {
origin, err := os.ReadFile(filePath) origin, err := os.ReadFile(filePath)
if err != nil { if err != nil {
return false, err return false, err
} }
if resources.CheckSum[name] != encode.Md5Hash(origin) { if resources.CheckSum[name] != encode.Md5Hash(origin) {
logs.Log.Importantf("update %s config from %s save to %s", name, url, fingerPath) logs.Log.Importantf("update %s config from %s save to %s", name, url, fingerFile)
err = os.WriteFile(filePath, content, 0644) err = os.WriteFile(filePath, content, 0644)
if err != nil { if err != nil {
return false, err return false, err
@ -157,7 +156,7 @@ func (opt *FingerOptions) downloadConfig(name string) (bool, error) {
return false, err return false, err
} }
defer out.Close() defer out.Close()
logs.Log.Importantf("download %s config from %s save to %s", name, url, fingerPath) logs.Log.Importantf("download %s config from %s save to %s", name, url, fingerFile)
err = os.WriteFile(filePath, content, 0644) err = os.WriteFile(filePath, content, 0644)
if err != nil { if err != nil {
return false, err return false, err
@ -169,7 +168,7 @@ func (opt *FingerOptions) downloadConfig(name string) (bool, error) {
if origin, err := os.ReadFile(filePath); err == nil { if origin, err := os.ReadFile(filePath); err == nil {
if encode.Md5Hash(content) != encode.Md5Hash(origin) { if encode.Md5Hash(content) != encode.Md5Hash(origin) {
logs.Log.Infof("download %s config from %s save to %s", name, url, fingerPath) logs.Log.Infof("download %s config from %s save to %s", name, url, fingerFile)
err = os.WriteFile(filePath, content, 0644) err = os.WriteFile(filePath, content, 0644)
if err != nil { if err != nil {
return false, err return false, err