Compare commits

3 Commits

3 changed files with 36 additions and 25 deletions
+9 -2
View File
@@ -24,7 +24,13 @@ cd server
go run ./cmd/wizard go run ./cmd/wizard
``` ```
Your choices are saved so next time you just press Enter to relaunch with the same settings. Your choices are saved so next time you just press Enter to relaunch with the same settings. To skip the confirmation prompt entirely (useful for scripts or quick relaunches), pass `--prefer-saved`:
```bash
go run ./cmd/wizard --prefer-saved
```
If no saved config exists, the flag prints an error and exits.
#### Custom Ports #### Custom Ports
@@ -35,7 +41,8 @@ go run ./cmd/wizard --grpc-port 9003 --cdn-port 9080
``` ```
| Flag | Default | Description | | Flag | Default | Description |
| ------------- | ------- | ---------------- | | ---------------- | ------- | ---------------------------------- |
| `--prefer-saved` | `false` | Reuse saved config without prompting |
| `--grpc-port` | `8003` | gRPC server port | | `--grpc-port` | `8003` | gRPC server port |
| `--cdn-port` | `8080` | CDN server port | | `--cdn-port` | `8080` | CDN server port |
| `--auth-port` | `3000` | Auth server port | | `--auth-port` | `3000` | Auth server port |
+1 -15
View File
@@ -34,32 +34,18 @@ build-dev:
go build -o bin/dev$(EXE) ./cmd/dev go build -o bin/dev$(EXE) ./cmd/dev
build-all: build-all:
ifeq ($(OS),Windows_NT)
if not exist bin mkdir bin
else
mkdir -p bin
endif
go build -o bin/dev$(EXE) ./cmd/dev go build -o bin/dev$(EXE) ./cmd/dev
go build -o bin/auth-server$(EXE) ./cmd/auth-server go build -o bin/auth-server$(EXE) ./cmd/auth-server
go build -o bin/octo-cdn$(EXE) ./cmd/octo-cdn go build -o bin/octo-cdn$(EXE) ./cmd/octo-cdn
go build -o bin/lunar-tear$(EXE) ./cmd/lunar-tear go build -o bin/lunar-tear$(EXE) ./cmd/lunar-tear
clean: clean:
ifeq ($(OS),Windows_NT) rm -rf bin/*
if exist bin rmdir /s /q bin
else
rm -rf bin
endif
dev: dev:
go run ./cmd/dev $(ARGS) go run ./cmd/dev $(ARGS)
migrate: migrate:
ifeq ($(OS),Windows_NT)
if not exist db mkdir db
else
mkdir -p db
endif
$(GOOSE) -dir migrations -allow-missing sqlite3 db/game.db up $(GOOSE) -dir migrations -allow-missing sqlite3 db/game.db up
import: import:
+22 -4
View File
@@ -55,6 +55,7 @@ type ports struct {
func main() { func main() {
setupOnly := flag.Bool("setup-only", false, "show patching instructions and exit without building or launching") setupOnly := flag.Bool("setup-only", false, "show patching instructions and exit without building or launching")
preferSaved := flag.Bool("prefer-saved", false, "reuse saved config without prompting")
grpcPort := flag.Int("grpc-port", defaultGRPCPort, "gRPC server port") grpcPort := flag.Int("grpc-port", defaultGRPCPort, "gRPC server port")
cdnPort := flag.Int("cdn-port", defaultCDNPort, "CDN server port") cdnPort := flag.Int("cdn-port", defaultCDNPort, "CDN server port")
authPort := flag.Int("auth-port", defaultAuthPort, "auth server port") authPort := flag.Int("auth-port", defaultAuthPort, "auth server port")
@@ -77,7 +78,7 @@ func main() {
downloadDeps() downloadDeps()
} }
ip, cfg, firstRun := resolveIP() ip, cfg, firstRun := resolveIP(*preferSaved)
p := resolvePorts(flagSet, *grpcPort, *cdnPort, *authPort, cfg) p := resolvePorts(flagSet, *grpcPort, *cdnPort, *authPort, cfg)
savedPorts := portsFromConfig(cfg) savedPorts := portsFromConfig(cfg)
@@ -289,7 +290,11 @@ func runProtoc() {
func runMigrate() { func runMigrate() {
_ = spinner.New().Title(" Running migrations...").Action(func() { _ = spinner.New().Title(" Running migrations...").Action(func() {
runQuiet(exec.Command(toolPaths["make"], "migrate", "GOOSE="+toolPaths["goose"]), "database migration") if err := os.MkdirAll("db", 0755); err != nil {
fmt.Fprintf(os.Stderr, " Failed to create db/: %v\n", err)
os.Exit(1)
}
runQuiet(exec.Command(toolPaths["goose"], "-dir", "migrations", "-allow-missing", "sqlite3", "db/game.db", "up"), "database migration")
}).Run() }).Run()
} }
@@ -311,12 +316,25 @@ func runQuiet(cmd *exec.Cmd, label string) {
} }
} }
func resolveIP() (string, config, bool) { func resolveIP(preferSaved bool) (string, config, bool) {
if cfg, err := loadConfig(); err == nil { cfg, err := loadConfig()
if err == nil {
if preferSaved {
if isLANBased(cfg) {
if ip, updated, ok := recheckLANIP(cfg); ok {
return ip, updated, false
}
}
return cfg.IP, cfg, false
}
ip, cfg, done := handleSavedConfig(cfg) ip, cfg, done := handleSavedConfig(cfg)
if done { if done {
return ip, cfg, false return ip, cfg, false
} }
} else if preferSaved {
fmt.Fprintln(os.Stderr, " --prefer-saved: no saved config found; run without the flag first.")
os.Exit(1)
} }
ip, cfg := runWizard() ip, cfg := runWizard()