mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
postcss: Improve validation of option 'config'
This commit is contained in:
parent
10d0fcc01f
commit
9a0370e8eb
3 changed files with 16 additions and 8 deletions
|
@ -188,19 +188,19 @@ func (b *BaseFs) AbsProjectContentDir(filename string) (string, string, error) {
|
||||||
|
|
||||||
// ResolveJSConfigFile resolves the JS-related config file to a absolute
|
// ResolveJSConfigFile resolves the JS-related config file to a absolute
|
||||||
// filename. One example of such would be postcss.config.js.
|
// filename. One example of such would be postcss.config.js.
|
||||||
func (fs *BaseFs) ResolveJSConfigFile(name string) string {
|
func (fs *BaseFs) ResolveJSConfigFile(name string) (string, bool) {
|
||||||
// First look in assets/_jsconfig
|
// First look in assets/_jsconfig
|
||||||
fi, err := fs.Assets.Fs.Stat(filepath.Join(files.FolderJSConfig, name))
|
fi, err := fs.Assets.Fs.Stat(filepath.Join(files.FolderJSConfig, name))
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return fi.(hugofs.FileMetaInfo).Meta().Filename
|
return fi.(hugofs.FileMetaInfo).Meta().Filename, fi.IsDir()
|
||||||
}
|
}
|
||||||
// Fall back to the work dir.
|
// Fall back to the work dir.
|
||||||
fi, err = fs.Work.Stat(name)
|
fi, err = fs.Work.Stat(name)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return fi.(hugofs.FileMetaInfo).Meta().Filename
|
return fi.(hugofs.FileMetaInfo).Meta().Filename, fi.IsDir()
|
||||||
}
|
}
|
||||||
|
|
||||||
return ""
|
return "", false
|
||||||
}
|
}
|
||||||
|
|
||||||
// MakePathRelative creates a relative path from the given filename.
|
// MakePathRelative creates a relative path from the given filename.
|
||||||
|
|
|
@ -134,13 +134,17 @@ func (t *babelTransformation) Transform(ctx *resources.ResourceTransformationCtx
|
||||||
}
|
}
|
||||||
|
|
||||||
configFile = filepath.Clean(configFile)
|
configFile = filepath.Clean(configFile)
|
||||||
|
isConfigFileDir := false
|
||||||
|
|
||||||
// We need an absolute filename to the config file.
|
// We need an absolute filename to the config file.
|
||||||
if !filepath.IsAbs(configFile) {
|
if !filepath.IsAbs(configFile) {
|
||||||
configFile = t.rs.BaseFs.ResolveJSConfigFile(configFile)
|
configFile, isConfigFileDir = t.rs.BaseFs.ResolveJSConfigFile(configFile)
|
||||||
|
if isConfigFileDir {
|
||||||
|
logger.Warnf("babel config %q must be a file, not a directory", configFile)
|
||||||
|
}
|
||||||
if configFile == "" && t.options.Config != "" {
|
if configFile == "" && t.options.Config != "" {
|
||||||
// Only fail if the user specified config file is not found.
|
// Only fail if the user specified config file is not found.
|
||||||
return fmt.Errorf("babel config %q not found:", configFile)
|
return fmt.Errorf("babel config file %q not found", configFile)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -172,13 +172,17 @@ func (t *postcssTransformation) Transform(ctx *resources.ResourceTransformationC
|
||||||
}
|
}
|
||||||
|
|
||||||
configFile = filepath.Clean(configFile)
|
configFile = filepath.Clean(configFile)
|
||||||
|
isConfigFileDir := false
|
||||||
|
|
||||||
// We need an absolute filename to the config file.
|
// We need an absolute filename to the config file.
|
||||||
if !filepath.IsAbs(configFile) {
|
if !filepath.IsAbs(configFile) {
|
||||||
configFile = t.rs.BaseFs.ResolveJSConfigFile(configFile)
|
configFile, isConfigFileDir = t.rs.BaseFs.ResolveJSConfigFile(configFile)
|
||||||
if configFile == "" && options.Config != "" {
|
if configFile == "" && options.Config != "" {
|
||||||
// Only fail if the user specified config file is not found.
|
// Only fail if the user specified config file is not found.
|
||||||
return fmt.Errorf("postcss config %q not found:", options.Config)
|
return fmt.Errorf("postcss config directory %q not found", options.Config)
|
||||||
|
}
|
||||||
|
if !isConfigFileDir {
|
||||||
|
logger.Warnf("postcss config %q must be a directory", options.Config)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue