Skip to content

Commit 265ab6e

Browse files
committed
split wasm and non wasm
1 parent f2e6266 commit 265ab6e

17 files changed

+182
-51
lines changed

.vscode/settings.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"gopls": {
3+
"build.env": {
4+
"GOOS": "js",
5+
"GOARCH": "wasm"
6+
}
7+
}
8+
}

handler/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@ type Config struct {
1313
// DefaultConfig for an installer handler
1414
var DefaultConfig = Config{
1515
Port: 3000,
16-
User: "jpillora",
16+
User: "cxjava",
1717
}

handler/handler.go

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package handler
22

33
import (
4-
"context"
54
"crypto/sha256"
65
"encoding/base64"
76
"encoding/json"
@@ -14,16 +13,13 @@ import (
1413
"strings"
1514
"sync"
1615
"time"
17-
18-
"github.com/syumai/workers/cloudflare/fetch"
1916
)
2017

2118
const (
2219
cacheTTL = time.Hour
2320
)
2421

2522
var (
26-
cli = fetch.NewClient()
2723
isTermRe = regexp.MustCompile(`(?i)^(curl|wget)\/`)
2824
isHomebrewRe = regexp.MustCompile(`(?i)^homebrew`)
2925
errMsgRe = regexp.MustCompile(`[^A-Za-z0-9\ :\/\.]`)
@@ -90,7 +86,7 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
9086
}
9187
http.Error(w, cleaned, http.StatusInternalServerError)
9288
}
93-
89+
9490
q := Query{
9591
User: "",
9692
Program: "",
@@ -135,7 +131,7 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
135131
// validate query
136132
valid := q.Program != ""
137133
if !valid && path == "" {
138-
http.Redirect(w, r, "https://github.com/jpillora/installer", http.StatusMovedPermanently)
134+
http.Redirect(w, r, "https://github.com/cxjava/installer", http.StatusMovedPermanently)
139135
return
140136
}
141137
if !valid {
@@ -212,20 +208,10 @@ func (as Assets) HasM1() bool {
212208
}
213209

214210
func (h *Handler) get(url string, v interface{}) error {
215-
r, err := fetch.NewRequest(context.TODO(), http.MethodGet, url, nil)
211+
resp, err := httpGetWithToken(url, h.Config.Token)
216212
if err != nil {
217-
fmt.Println(err)
218213
return err
219214
}
220-
r.Header.Set("Accept", "application/vnd.github.v3+json")
221-
r.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36")
222-
if h.Config.Token != "" {
223-
r.Header.Set("Authorization", "token "+h.Config.Token)
224-
}
225-
resp, err := cli.Do(r, nil)
226-
if err != nil {
227-
return fmt.Errorf("request failed: %s: %s", url, err)
228-
}
229215
defer resp.Body.Close()
230216

231217
if resp.StatusCode == 404 {

handler/handler_execute.go

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,12 @@ package handler
22

33
import (
44
"bufio"
5-
"context"
65
"errors"
76
"fmt"
87
"log"
9-
"net/http"
108
"sort"
119
"strings"
1210
"time"
13-
14-
"github.com/syumai/workers/cloudflare/fetch"
1511
)
1612

1713
func (h *Handler) execute(q Query) (Result, error) {
@@ -201,16 +197,11 @@ func (as ghAssets) getSumIndex() (map[string]string, error) {
201197
if url == "" {
202198
return nil, errors.New("no sum file found")
203199
}
204-
r, err := fetch.NewRequest(context.TODO(), http.MethodGet, url, nil)
200+
resp, err := httpGet(url)
205201
if err != nil {
206202
fmt.Println(err)
207203
return nil, err
208204
}
209-
r.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36")
210-
resp, err := cli.Do(r, nil)
211-
if err != nil {
212-
return nil, err
213-
}
214205
defer resp.Body.Close()
215206
// take each line and insert into the index
216207
index := map[string]string{}

handler/http_nonwasm.go

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
//go:build !wasm
2+
3+
package handler
4+
5+
import (
6+
"fmt"
7+
"net/http"
8+
)
9+
10+
var (
11+
userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
12+
)
13+
14+
func httpGet(url string) (*http.Response, error) {
15+
req, err := http.NewRequest(http.MethodGet, url, nil)
16+
if err != nil {
17+
return nil, err
18+
}
19+
req.Header.Set("Accept", "*/*")
20+
//I'm a browser... :)
21+
req.Header.Set("User-Agent", userAgent)
22+
23+
resp, err := http.DefaultClient.Do(req)
24+
if err != nil {
25+
return nil, fmt.Errorf("request failed: %s", err)
26+
}
27+
28+
return resp, nil
29+
}
30+
31+
func httpGetWithToken(url, token string) (*http.Response, error) {
32+
r, err := http.NewRequest(http.MethodGet, url, nil)
33+
if err != nil {
34+
fmt.Println(err)
35+
return nil, err
36+
}
37+
r.Header.Set("Accept", "application/vnd.github.v3+json")
38+
//I'm a browser... :)
39+
r.Header.Set("User-Agent", userAgent)
40+
if len(token) > 0 {
41+
r.Header.Set("Authorization", "token "+token)
42+
}
43+
resp, err := http.DefaultClient.Do(r)
44+
if err != nil {
45+
return nil, fmt.Errorf("request failed: %s: %s", url, err)
46+
}
47+
return resp, nil
48+
}

handler/http_wasm.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
//go:build wasm
2+
3+
package handler
4+
5+
import (
6+
"context"
7+
"fmt"
8+
"net/http"
9+
10+
"github.com/syumai/workers/cloudflare/fetch"
11+
)
12+
13+
var (
14+
cli = fetch.NewClient()
15+
userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
16+
)
17+
18+
func httpGetWithToken(url, token string) (*http.Response, error) {
19+
r, err := fetch.NewRequest(context.TODO(), http.MethodGet, url, nil)
20+
if err != nil {
21+
fmt.Println(err)
22+
return nil, err
23+
}
24+
r.Header.Set("Accept", "application/vnd.github.v3+json")
25+
//I'm a browser... :)
26+
r.Header.Set("User-Agent", userAgent)
27+
if len(token) > 0 {
28+
r.Header.Set("Authorization", "token "+token)
29+
}
30+
resp, err := cli.Do(r, nil)
31+
if err != nil {
32+
return nil, fmt.Errorf("request failed: %s: %s", url, err)
33+
}
34+
return resp, nil
35+
}
36+
37+
func httpGet(url string) (*http.Response, error) {
38+
req, err := fetch.NewRequest(context.TODO(), http.MethodGet, url, nil)
39+
if err != nil {
40+
return nil, err
41+
}
42+
req.Header.Set("Accept", "*/*")
43+
//I'm a browser... :)
44+
req.Header.Set("User-Agent", userAgent)
45+
resp, err := cli.Do(req, nil)
46+
if err != nil {
47+
return nil, fmt.Errorf("request failed: %s", err)
48+
}
49+
return resp, nil
50+
}

handler/install.rb.qtpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class Installer < Formula
1919
end
2020

2121
def caveats
22-
"{%s r.Program %} was installed using https://github.com/jpillora/installer"
22+
"{%s r.Program %} was installed using https://github.com/cxjava/installer"
2323
end
2424
end
2525
{% endfunc %}

handler/install.rb.qtpl.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

handler/install.txt.qtpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ has-m1-asset: {%v r.M1Asset %}
1818

1919
to see shell script, append ?type=script
2020
for more information on this server, visit:
21-
github.com/jpillora/installer
21+
github.com/cxjava/installer
2222
{% endfunc %}

handler/install.txt.qtpl.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)