Skip to content

Commit 5e92e37

Browse files
committed
add support for PBSync gslib
1 parent e2814e9 commit 5e92e37

File tree

3 files changed

+31
-21
lines changed

3 files changed

+31
-21
lines changed

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,18 @@ archive are supported.
99

1010
```
1111
Usage of ue4versionator:
12+
-assume-valid
13+
assumes current archive is valid, if present
14+
-bundle string
15+
request UE4 build bundle (default "editor")
1216
-config string
1317
ue4versionator config file (default ".ue4versionator")
1418
-user-config string
1519
ue4versionator user config file (default ".ue4v-user")
1620
-virgin
1721
ask configuration options like the first time
18-
-bundle
19-
request UE4 build bundle
2022
-with-symbols
21-
download and unpack UE4 engine debug symbols
23+
include UE4 engine debug symbols
2224
```
2325

2426
## Configuring ue4versionator

archive.go

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ var ErrEngineAssociationNeedsPrefix = errors.New("engine association needs 'ue4v
3030
type DownloadOptions struct {
3131
EngineBundle string
3232
FetchSymbols bool
33+
AssumeValid bool
3334
}
3435

3536
// GetEngineAssociation returns a .uproject engine association.
@@ -110,7 +111,7 @@ func FetchEngine(rootDir string, baseURL, version string, options DownloadOption
110111
return
111112
}
112113

113-
assetInfo[i].err = download(baseURL, dest, assetInfo[i].name, name)
114+
assetInfo[i].err = download(baseURL, rootDir, name, assetInfo[i].name, name, options.AssumeValid)
114115
}(idx, version)
115116
}
116117
wg.Wait()
@@ -125,33 +126,38 @@ func FetchEngine(rootDir string, baseURL, version string, options DownloadOption
125126
return dest, err
126127
}
127128

128-
func download(baseURL, dest, asset, version string) error {
129+
func download(baseURL, rootDir, name, asset, version string, assumeValid bool) error {
129130
urlStr := fmt.Sprintf("%s/%s-%s.7z", baseURL, asset, version)
130131
uri, err := url.Parse(urlStr)
131132
if err != nil {
132133
return err
133134
}
134135

135136
req, _ := http.NewRequest("GET", uri.String(), nil)
137+
dest := filepath.Join(rootDir, name)
136138

137139
// if archive exists, see if we can do a range request
138-
archivePath := dest + "-" + asset + ".7z"
140+
archivePath := filepath.Join(rootDir, asset) + "-" + name + ".7z"
139141
if fi, err := os.Stat(archivePath); err == nil {
140-
resp, err := http.Head(uri.String())
141-
if err != nil {
142-
return err
143-
}
144-
if resp.StatusCode >= 400 {
145-
return errors.New(fmt.Sprintf("%s: %s", resp.Status, urlStr))
146-
}
147-
if resp.Header.Get("Content-Length") != "" {
148-
size, err := strconv.Atoi(resp.Header.Get("Content-Length"))
149-
if err == nil && int64(size) == fi.Size() {
150-
return extract(asset, archivePath, dest)
142+
if assumeValid {
143+
return extract(asset, archivePath, dest)
144+
} else {
145+
resp, err := http.Head(uri.String())
146+
if err != nil {
147+
return err
148+
}
149+
if resp.StatusCode >= 400 {
150+
return errors.New(fmt.Sprintf("%s: %s", resp.Status, urlStr))
151+
}
152+
if resp.Header.Get("Content-Length") != "" {
153+
size, err := strconv.Atoi(resp.Header.Get("Content-Length"))
154+
if err == nil && int64(size) == fi.Size() {
155+
return extract(asset, archivePath, dest)
156+
}
157+
}
158+
if resp.Header.Get("Accept-Ranges") == "bytes" {
159+
req.Header.Set("Range", fmt.Sprintf("bytes=%d-", fi.Size()))
151160
}
152-
}
153-
if resp.Header.Get("Accept-Ranges") == "bytes" {
154-
req.Header.Set("Range", fmt.Sprintf("bytes=%d-", fi.Size()))
155161
}
156162
}
157163

main.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ var (
2020
iniConfig = flag.String("config", ".ue4versionator", "ue4versionator config file")
2121
userIniConfig = flag.String("user-config", ".ue4v-user", "ue4versionator user config file")
2222
bundle = flag.String("bundle", "editor", "request UE4 build bundle")
23-
fetchSymbols = flag.Bool("with-symbols", false, "download and unpack UE4 engine debug symbols")
23+
fetchSymbols = flag.Bool("with-symbols", false, "include UE4 engine debug symbols")
2424
virgin = flag.Bool("virgin", false, "ask configuration options like the first time")
25+
assumeValid = flag.Bool("assume-valid", false, "assumes current archive is valid, if present")
2526
)
2627

2728
func main() {
@@ -77,6 +78,7 @@ func main() {
7778
dest, err := FetchEngine(downloadDir, baseURL.String(), version, DownloadOptions{
7879
EngineBundle: *bundle,
7980
FetchSymbols: shouldFetchSymbols,
81+
AssumeValid: *assumeValid,
8082
})
8183
if err != nil {
8284
handleError(err)

0 commit comments

Comments
 (0)