stash/pkg/utils/urlmap.go
WithoutPants 222475df82
Plugin assets, external scripts and CSP overrides (#4260)
* Add assets for plugins
* Move plugin javascript and css into separate endpoints
* Allow loading external scripts
* Add csp overrides
* Only include enabled plugins
* Move URLMap to utils
* Use URLMap for assets
* Add documentation
2023-11-19 10:41:16 +11:00

30 lines
537 B
Go

package utils
import "strings"
// URLMap is a map of URL prefixes to filesystem locations
type URLMap map[string]string
// GetFilesystemLocation returns the adjusted URL and the filesystem location
func (m URLMap) GetFilesystemLocation(url string) (newURL string, fsPath string) {
newURL = url
if m == nil {
return
}
root := m["/"]
for k, v := range m {
if k != "/" && strings.HasPrefix(url, k) {
newURL = strings.TrimPrefix(url, k)
fsPath = v
return
}
}
if root != "" {
fsPath = root
return
}
return
}