Skip to content

Commit

Permalink
Merge pull request #26 from sansecio/sw6-base-url
Browse files Browse the repository at this point in the history
support shopware6 version and base urls
  • Loading branch information
danslo authored Jan 10, 2025
2 parents cf6d85d + 9d7c60f commit 19a06cb
Show file tree
Hide file tree
Showing 14 changed files with 10,830 additions and 490 deletions.
9 changes: 6 additions & 3 deletions cmd/find/find.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,17 @@ func main() {
if err != nil {
ver = "unknown"
}
fmt.Printf("- %s (ver: %s) at %s\n", store.Platform.Name(), ver, store.DocRoot)
fmt.Printf("DBC: %+v\n", store.Config.DB)
fmt.Printf("%s (ver: %s) at %s\n", store.Platform.Name(), ver, store.DocRoot)
if store.Config != nil && store.Config.DB != nil {
fmt.Printf("DBC: %+v\n", store.Config.DB)
}

if urls, err := store.Platform.BaseURLs(context.Background(), store.DocRoot); err == nil {
if urls, err := store.Platform.BaseURLs(context.Background(), store.DocRoot); err == nil && len(urls) > 0 {
fmt.Println("Base URLs:")
for _, url := range urls {
fmt.Printf("- %s\n", url)
}
}
fmt.Println()
}
}
94 changes: 94 additions & 0 deletions composer.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package gocommerce

import (
"encoding/json"
"errors"
"os"
"regexp"
"strings"
)

type (
composerRoot struct {
Name string `json:"name"`
Version string `json:"version"`
Require map[string]string `json:"require"`
}

composerPackages struct {
Packages []struct {
Name string `json:"name"`
Version string `json:"version"`
} `json:"packages"`
}
)

func getVersionFromComposerJSONFile(
jsonFile string,
pkgRgx *regexp.Regexp,
) (string, error) {
jf, err := os.ReadFile(jsonFile)
if err != nil {
return "", err
}

cr := composerRoot{}
err = json.Unmarshal(jf, &cr)
if err != nil {
return "", err
}

for p, v := range cr.Require {
if pkgRgx.MatchString(p) {
return v, nil
}
}

return "", errors.New("unable to determine version from composer.json")
}

func getVersionFromComposerLockFile(
lockFile string,
pkgRgx *regexp.Regexp,
) (string, error) {
lf, err := os.ReadFile(lockFile)
if err != nil {
return "", err
}

cp := composerPackages{}
err = json.Unmarshal(lf, &cp)
if err != nil {
return "", err
}

for _, p := range cp.Packages {
if pkgRgx.MatchString(p.Name) {
return p.Version, nil
}
}

return "", errors.New("unable to determine version from composer.lock")
}

func stripVersionPrefix(v string) string {
if strings.HasPrefix(v, "v") {
return v[1:]
}
return v
}

func getVersionFromComposer(
docroot string,
pkgRgx *regexp.Regexp,
) (string, error) {
version, err := getVersionFromComposerLockFile(docroot+"/composer.lock", pkgRgx)
if err == nil {
return stripVersionPrefix(version), nil
}
version, err = getVersionFromComposerJSONFile(docroot+"/composer.json", pkgRgx)
if err == nil {
return stripVersionPrefix(version), nil
}
return "", err
}
1 change: 0 additions & 1 deletion fixture/discovery/public_html

This file was deleted.

1 change: 1 addition & 0 deletions fixture/discovery/symlink/public_html
Loading

0 comments on commit 19a06cb

Please sign in to comment.