Skip to content

Commit 6b8ab60

Browse files
committed
refactor(bootstrapper): rework webview installation sequence; rename fns
1 parent c30f9d7 commit 6b8ab60

File tree

3 files changed

+32
-50
lines changed

3 files changed

+32
-50
lines changed

cmd/vinegar/bootstrapper_setup.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,22 +37,18 @@ func (b *bootstrapper) setup() error {
3737
stop()
3838
}
3939

40-
if err := b.stepSetupDxvk(); err != nil {
41-
return fmt.Errorf("dxvk dl: %w", err)
40+
if err := b.setupDxvk(); err != nil {
41+
return fmt.Errorf("dxvk: %w", err)
4242
}
4343

44-
if err := b.stepWebviewDownload(); err != nil {
45-
return fmt.Errorf("webview dl: %w", err)
44+
if err := b.setupWebView(); err != nil {
45+
return fmt.Errorf("webview: %w", err)
4646
}
4747

4848
if err := b.setupDeployment(); err != nil {
4949
return err
5050
}
5151

52-
if err := b.stepWebviewInstall(); err != nil {
53-
return fmt.Errorf("webview: %w", err)
54-
}
55-
5652
if err := b.stepPrepareRun(); err != nil {
5753
return err
5854
}

cmd/vinegar/bootstrapper_setup_pfx.go

Lines changed: 20 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func (b *bootstrapper) setupPrefix() error {
6363
return nil
6464
}
6565

66-
func (b *bootstrapper) stepSetupDxvk() error {
66+
func (b *bootstrapper) setupDxvk() error {
6767
// If DXVK is installed in the wineprefix, uninstallation
6868
// won't be necessary if it's disabled as it still requires
6969
// DLL overrides to be present.
@@ -116,37 +116,9 @@ install:
116116
return nil
117117
}
118118

119-
func (b *bootstrapper) webviewInstaller() string {
120-
if b.cfg.Studio.WebView == "" {
121-
return ""
122-
}
123-
return filepath.Join(dirs.Cache, "webview-"+b.cfg.Studio.WebView+".exe")
124-
}
125-
126-
func (b *bootstrapper) stepWebviewDownload() error {
127-
name := b.webviewInstaller()
128-
if name == "" {
129-
return nil
130-
}
131-
132-
if _, err := os.Stat(name); err == nil {
133-
return nil
134-
}
119+
func (b *bootstrapper) setupWebView() error {
120+
installer := filepath.Join(dirs.Cache, "webview-"+b.cfg.Studio.WebView+".exe")
135121

136-
stop := b.performing()
137-
b.message("Fetching WebView", "upload", b.cfg.Studio.WebView)
138-
webview2.Client.Transport.(*http.Transport).DisableCompression = true
139-
d, err := webview2.Stable.Runtime(b.cfg.Studio.WebView, "x64")
140-
if err != nil {
141-
return fmt.Errorf("fetch: %w", err)
142-
}
143-
stop()
144-
145-
b.message("Downloading WebView", "catalog", d.Delivery.CatalogID)
146-
return netutil.DownloadProgress(d.URL, name, &b.pbar)
147-
}
148-
149-
func (b *bootstrapper) stepWebviewInstall() error {
150122
new := b.cfg.Studio.WebView
151123
b.message("Checking WebView", "version", new)
152124

@@ -161,10 +133,24 @@ func (b *bootstrapper) stepWebviewInstall() error {
161133
return nil
162134
}
163135

164-
name := b.webviewInstaller()
136+
if _, err := os.Stat(installer); err != nil {
137+
stop := b.performing()
138+
b.message("Fetching WebView", "upload", b.cfg.Studio.WebView)
139+
webview2.Client.Transport.(*http.Transport).DisableCompression = true
140+
d, err := webview2.Stable.Runtime(b.cfg.Studio.WebView, "x64")
141+
if err != nil {
142+
return fmt.Errorf("fetch: %w", err)
143+
}
144+
stop()
145+
146+
b.message("Downloading WebView", "catalog", d.Delivery.CatalogID)
147+
if err := netutil.DownloadProgress(d.URL, installer, &b.pbar); err != nil {
148+
return fmt.Errorf("download: %w", err)
149+
}
150+
}
165151

166-
b.message("Installing WebView", "path", name)
152+
b.message("Installing WebView", "path", installer)
167153
defer b.performing()()
168154

169-
return webview2.Install(b.pfx, name)
155+
return webview2.Install(b.pfx, installer)
170156
}

cmd/vinegar/bootstrapper_setup_rblx.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
var studio = rbxweb.BinaryTypeWindowsStudio64
2222

2323
func (b *bootstrapper) setupDeployment() error {
24-
if err := b.stepFetchDeployment(); err != nil {
24+
if err := b.setDeployment(); err != nil {
2525
return fmt.Errorf("fetch: %w", err)
2626
}
2727
b.dir = filepath.Join(dirs.Versions, b.bin.GUID)
@@ -41,7 +41,7 @@ func (b *bootstrapper) setupDeployment() error {
4141
return err
4242
}
4343

44-
if err := b.stepSetupPackages(); err != nil {
44+
if err := b.setupPackages(); err != nil {
4545
return err
4646
}
4747

@@ -55,7 +55,7 @@ func (b *bootstrapper) setupDeployment() error {
5555
return nil
5656
}
5757

58-
func (b *bootstrapper) stepFetchDeployment() error {
58+
func (b *bootstrapper) setDeployment() error {
5959
defer b.performing()()
6060

6161
if b.cfg.Studio.ForcedVersion != "" {
@@ -83,7 +83,7 @@ func (b *bootstrapper) stepFetchDeployment() error {
8383
return nil
8484
}
8585

86-
func (b *bootstrapper) stepSetupPackages() error {
86+
func (b *bootstrapper) setupPackages() error {
8787
stop := b.performing()
8888

8989
b.message("Finding Mirror")
@@ -120,14 +120,14 @@ func (b *bootstrapper) stepSetupPackages() error {
120120

121121
stop()
122122

123-
if err := b.stepPackagesInstall(&m, pkgs, pd); err != nil {
123+
if err := b.installPackages(&m, pkgs, pd); err != nil {
124124
return err
125125
}
126126

127127
return nil
128128
}
129129

130-
func (b *bootstrapper) stepPackagesInstall(
130+
func (b *bootstrapper) installPackages(
131131
mirror *rbxbin.Mirror,
132132
pkgs []rbxbin.Package,
133133
pdirs rbxbin.PackageDirectories,
@@ -139,7 +139,7 @@ func (b *bootstrapper) stepPackagesInstall(
139139
b.message("Installing Packages", "count", len(pkgs), "dir", b.dir)
140140
for _, pkg := range pkgs {
141141
group.Go(func() error {
142-
if err := b.stepPackageInstall(mirror, pdirs, &pkg); err != nil {
142+
if err := b.installPackage(mirror, pdirs, &pkg); err != nil {
143143
return err
144144
}
145145

@@ -159,7 +159,7 @@ func (b *bootstrapper) stepPackagesInstall(
159159
return nil
160160
}
161161

162-
func (b *bootstrapper) stepPackageInstall(
162+
func (b *bootstrapper) installPackage(
163163
mirror *rbxbin.Mirror,
164164
pdirs rbxbin.PackageDirectories,
165165
pkg *rbxbin.Package,

0 commit comments

Comments
 (0)