allow us to specify paths and files in the configuration relative to the directory the configuration file is in
This commit is contained in:
+6
-5
@@ -88,20 +88,21 @@ var extDialogs fs.FS = nil
|
||||
// setupDialogs sets up the external dialog filesystem.
|
||||
func setupDialogs() {
|
||||
// Open the external dialog path.
|
||||
if config.GlobalConfig.Resources.DialogTemplateDir != "" {
|
||||
finfo, err := os.Stat(config.GlobalConfig.Resources.DialogTemplateDir)
|
||||
dtDir := config.GlobalConfig.ExPath(config.GlobalConfig.Resources.DialogTemplateDir)
|
||||
if dtDir != "" {
|
||||
finfo, err := os.Stat(dtDir)
|
||||
if err == nil {
|
||||
if finfo.IsDir() {
|
||||
root, err := os.OpenRoot(config.GlobalConfig.Resources.DialogTemplateDir)
|
||||
root, err := os.OpenRoot(dtDir)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
extDialogs = root.FS()
|
||||
} else {
|
||||
log.Errorf("external resource path \"%s\" is not a directory, ignored", config.GlobalConfig.Resources.DialogTemplateDir)
|
||||
log.Errorf("external resource path \"%s\" is not a directory, ignored", dtDir)
|
||||
}
|
||||
} else {
|
||||
log.Errorf("external resource path \"%s\" is not valid, ignored (%v)", config.GlobalConfig.Resources.DialogTemplateDir, err)
|
||||
log.Errorf("external resource path \"%s\" is not valid, ignored (%v)", dtDir, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+5
-4
@@ -164,8 +164,9 @@ func setupMenus() {
|
||||
if menuCache, err = lru.New(config.GlobalConfig.Tuning.Caches.Menus); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if config.GlobalConfig.Resources.ExternalMenuDefinitions != "" {
|
||||
b, err := os.ReadFile(config.GlobalConfig.Resources.ExternalMenuDefinitions)
|
||||
mfile := config.GlobalConfig.ExPath(config.GlobalConfig.Resources.ExternalMenuDefinitions)
|
||||
if mfile != "" {
|
||||
b, err := os.ReadFile(mfile)
|
||||
if err == nil {
|
||||
md := new(MenuDefs)
|
||||
err = yaml.Unmarshal(b, md)
|
||||
@@ -177,10 +178,10 @@ func setupMenus() {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.Errorf("cannot parse external menu definition file %s, ignored (%v)", config.GlobalConfig.Resources.ExternalMenuDefinitions, err)
|
||||
log.Errorf("cannot parse external menu definition file %s, ignored (%v)", mfile, err)
|
||||
}
|
||||
} else {
|
||||
log.Errorf("cannot read external menu definition file %s, ignored (%v)", config.GlobalConfig.Resources.ExternalMenuDefinitions, err)
|
||||
log.Errorf("cannot read external menu definition file %s, ignored (%v)", mfile, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+5
-4
@@ -85,8 +85,9 @@ func init() {
|
||||
|
||||
// setupMessageBoxes loads external message box definitions.
|
||||
func setupMessageBoxes() {
|
||||
if config.GlobalConfig.Resources.ExternalMessageDefinitions != "" {
|
||||
b, err := os.ReadFile(config.GlobalConfig.Resources.ExternalMessageDefinitions)
|
||||
mbfile := config.GlobalConfig.ExPath(config.GlobalConfig.Resources.ExternalMessageDefinitions)
|
||||
if mbfile != "" {
|
||||
b, err := os.ReadFile(mbfile)
|
||||
if err == nil {
|
||||
mb := new(MessageBoxDefs)
|
||||
err = yaml.Unmarshal(b, mb)
|
||||
@@ -102,10 +103,10 @@ func setupMessageBoxes() {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.Errorf("cannot parse external message definition file %s, ignored (%v)", config.GlobalConfig.Resources.ExternalMessageDefinitions, err)
|
||||
log.Errorf("cannot parse external message definition file %s, ignored (%v)", mbfile, err)
|
||||
}
|
||||
} else {
|
||||
log.Errorf("cannot read external message definition file %s, ignored (%v)", config.GlobalConfig.Resources.ExternalMessageDefinitions, err)
|
||||
log.Errorf("cannot read external message definition file %s, ignored (%v)", mbfile, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+6
-5
@@ -37,20 +37,21 @@ var external_resources fs.FS = nil
|
||||
|
||||
func setupResources() {
|
||||
// Open the external resource path.
|
||||
if config.GlobalConfig.Resources.ExternalResourcePath != "" {
|
||||
finfo, err := os.Stat(config.GlobalConfig.Resources.ExternalResourcePath)
|
||||
rpath := config.GlobalConfig.ExPath(config.GlobalConfig.Resources.ExternalResourcePath)
|
||||
if rpath != "" {
|
||||
finfo, err := os.Stat(rpath)
|
||||
if err == nil {
|
||||
if finfo.IsDir() {
|
||||
root, err := os.OpenRoot(config.GlobalConfig.Resources.ExternalResourcePath)
|
||||
root, err := os.OpenRoot(rpath)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
external_resources = root.FS()
|
||||
} else {
|
||||
log.Errorf("external resource path \"%s\" is not a directory, ignored", config.GlobalConfig.Resources.ExternalResourcePath)
|
||||
log.Errorf("external resource path \"%s\" is not a directory, ignored", rpath)
|
||||
}
|
||||
} else {
|
||||
log.Errorf("external resource path \"%s\" is not valid, ignored (%v)", config.GlobalConfig.Resources.ExternalResourcePath, err)
|
||||
log.Errorf("external resource path \"%s\" is not valid, ignored (%v)", rpath, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+6
-5
@@ -287,16 +287,17 @@ func postRewrite(a jet.Arguments) reflect.Value {
|
||||
func setupTemplates() {
|
||||
// Set up the template loaders: the optional filesystem loader, then the embedded loader.
|
||||
templateLoaders := make([]jet.Loader, 0, 2)
|
||||
if config.GlobalConfig.Resources.ViewTemplateDir != "" {
|
||||
finfo, err := os.Stat(config.GlobalConfig.Resources.ViewTemplateDir)
|
||||
vtDir := config.GlobalConfig.ExPath(config.GlobalConfig.Resources.ViewTemplateDir)
|
||||
if vtDir != "" {
|
||||
finfo, err := os.Stat(vtDir)
|
||||
if err == nil {
|
||||
if finfo.IsDir() {
|
||||
templateLoaders = append(templateLoaders, jet.NewOSFileSystemLoader(config.GlobalConfig.Resources.ViewTemplateDir))
|
||||
templateLoaders = append(templateLoaders, jet.NewOSFileSystemLoader(vtDir))
|
||||
} else {
|
||||
log.Errorf("view template directory %s is not a directory, ignored", config.GlobalConfig.Resources.ViewTemplateDir)
|
||||
log.Errorf("view template directory %s is not a directory, ignored", vtDir)
|
||||
}
|
||||
} else {
|
||||
log.Errorf("view template directory %s is not valid, ignored (%v)", config.GlobalConfig.Resources.ViewTemplateDir, err)
|
||||
log.Errorf("view template directory %s is not valid, ignored (%v)", vtDir, err)
|
||||
}
|
||||
}
|
||||
templateLoaders = append(templateLoaders, embedfs.NewLoader("views/", static_views))
|
||||
|
||||
Reference in New Issue
Block a user