代码拉取完成,页面将自动刷新
同步操作将从 Kevin2li/PDF-Guru 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package main
import (
"encoding/json"
"os"
"path/filepath"
"runtime"
"github.com/pkg/errors"
)
type MyConfig struct {
PdfPath string `json:"pdf_path"`
PythonPath string `json:"python_path"`
TesseractPath string `json:"tesseract_path"`
PandocPath string `json:"pandoc_path"`
HashcatPath string `json:"hashcat_path"`
}
func (a *App) SaveConfig(pdfPath string, pythonPath string, tesseractPath string, pandocPath string, hashcatPath string) error {
var config MyConfig
config.PdfPath = pdfPath
config.PythonPath = pythonPath
config.TesseractPath = tesseractPath
config.PandocPath = pandocPath
config.HashcatPath = hashcatPath
log.Printf("%v\n", config)
jsonData, err := json.Marshal(config)
if err != nil {
err = errors.Wrap(err, "marshal config error")
logger.Errorln(err)
return err
}
// 获取配置文件路径
path, err := os.Executable()
if err != nil {
err = errors.Wrap(err, "")
logger.Errorln("Error:", err)
return err
}
configPath := filepath.Join(filepath.Dir(path), "config.json")
if runtime.GOOS == "darwin" {
configPath = filepath.Join(filepath.Dir(filepath.Dir(filepath.Dir(filepath.Dir(path)))), "config.json")
} else if runtime.GOOS == "linux" {
configPath = filepath.Join(filepath.Dir(path), "config.json")
}
err = os.WriteFile(configPath, jsonData, 0644)
if err != nil {
err = errors.Wrap(err, "")
logger.Errorln("Error:", err)
return err
}
return nil
}
func (a *App) LoadConfig() (MyConfig, error) {
var config MyConfig
// 获取配置文件路径
path, err := os.Executable()
if err != nil {
err = errors.Wrap(err, "")
logger.Errorln("Error:", err)
return config, err
}
configPath := filepath.Join(filepath.Dir(path), "config.json")
if runtime.GOOS == "darwin" {
configPath = filepath.Join(filepath.Dir(filepath.Dir(filepath.Dir(filepath.Dir(path)))), "config.json")
}
if _, err := os.Stat(configPath); os.IsNotExist(err) {
path, err := os.Executable()
if err != nil {
err = errors.Wrap(err, "")
logger.Errorln("Error:", err)
return config, err
}
pdfPath := filepath.Join(filepath.Dir(path), "pdf.exe")
if runtime.GOOS == "darwin" {
pdfPath = filepath.Join(filepath.Dir(filepath.Dir(filepath.Dir(filepath.Dir(path)))), "pdf")
} else if runtime.GOOS == "linux" {
pdfPath = filepath.Join(filepath.Dir(path), "pdf")
}
err = a.SaveConfig(pdfPath, "", "", "", "")
if err != nil {
err = errors.Wrap(err, "")
return config, err
}
}
data, err := os.ReadFile(configPath)
if err != nil {
err = errors.Wrap(err, "")
return config, err
}
err = json.Unmarshal(data, &config)
if err != nil {
err = errors.Wrap(err, "")
return config, err
}
return config, nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。