cmd/golink: run on Fly

And change /export to /_/export.

Updates #nnn

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2022-06-01 19:15:55 -07:00
committed by Will Norris
parent 61fd39d80e
commit f6ed6a49e7
5 changed files with 46 additions and 2 deletions
+4
View File
@@ -0,0 +1,4 @@
deploy:
./build.sh
flyctl deploy
Executable
+13
View File
@@ -0,0 +1,13 @@
#!/bin/bash
set -e
set -x
export PATH="$PWD/../../tool":$PATH
go run github.com/tailscale/mkctr \
--base="alpine:3.15" \
--gopaths="tailscale.io/cmd/golink:/tsgo" \
--tags="latest" \
--repos="registry.fly.io/tsgo" \
--push
+19
View File
@@ -0,0 +1,19 @@
# Manually:
# $ fly scale count 1
# $ fly volumes create tsgo_data --region ord --size 1
# $ fly secrets set TS_AUTHKEY=....
app = "tsgo"
[build]
image = "registry.fly.io/tsgo:latest"
[experimental]
cmd = ["/tsgo", "-verbose", "-linkdir=/root/linkdata", "-mkdir"]
[deploy]
strategy = "immediate"
[mounts]
source="tsgo_data"
destination="/root"
+9 -1
View File
@@ -28,6 +28,7 @@ var (
verbose = flag.Bool("verbose", false, "be verbose")
linkDir = flag.String("linkdir", "", "the directory to store one JSON file per go/ shortlink")
dev = flag.String("dev-listen", "", "if non-empty, listen on this addr and run in dev mode; auto-set linkDir if empty and don't use tsnet")
doMkdir = flag.Bool("mkdir", false, "whether to make --linkdir at start")
)
//go:embed link-snapshot.json
@@ -59,6 +60,13 @@ func main() {
log.Fatalf("--linkdir is required")
}
}
if *doMkdir {
if err := os.MkdirAll(*linkDir, 0755); err != nil {
log.Fatal(err)
}
}
if fi, err := os.Stat(*linkDir); err != nil {
log.Fatal(err)
} else if !fi.IsDir() {
@@ -136,7 +144,7 @@ func loadLink(short string) (*DiskLink, error) {
}
func serveGo(w http.ResponseWriter, r *http.Request) {
if r.RequestURI == "/export" {
if r.RequestURI == "/_/export" {
serveExport(w, r)
return
}
+1 -1
View File
@@ -3,4 +3,4 @@
set -e
set -x
curl -o $(dirname "$0")/link-snapshot.json http://go/export
curl -o $(dirname "$0")/link-snapshot.json http://go/_/export