fix
This commit is contained in:
+18
-18
@@ -10,7 +10,7 @@ import (
|
||||
"os"
|
||||
"strconv"
|
||||
|
||||
"wh/fixed"
|
||||
"halcyon/fixed"
|
||||
)
|
||||
|
||||
const SecondsPerDay = 86400
|
||||
@@ -85,20 +85,20 @@ func Bind(fs *flag.FlagSet) (*Config, error) {
|
||||
if err := c.applyEnv(os.Getenv); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
fs.Uint64Var(&c.Seed, "seed", c.Seed, "world seed (env WH_SEED)")
|
||||
fs.IntVar(&c.TicksPerDay, "ticks-per-day", c.TicksPerDay, "simulation ticks per day (env WH_TICKS_PER_DAY)")
|
||||
fs.IntVar(&c.CyclesPerTick, "cycles-per-tick", c.CyclesPerTick, "VM cycles per ship per tick (env WH_CYCLES_PER_TICK)")
|
||||
fs.IntVar(&c.ProgramBytes, "program-bytes", c.ProgramBytes, "max ship program size (env WH_PROGRAM_BYTES)")
|
||||
fs.IntVar(&c.RAMBytes, "ram-bytes", c.RAMBytes, "ship RAM size (env WH_RAM_BYTES)")
|
||||
fs.IntVar(&c.CommBytes, "comm-bytes", c.CommBytes, "uplink/downlink buffer size (env WH_COMM_BYTES)")
|
||||
fs.IntVar(&c.AsteroidCount, "asteroids", c.AsteroidCount, "number of asteroids (env WH_ASTEROIDS)")
|
||||
fs.Uint64Var(&c.Seed, "seed", c.Seed, "world seed (env HALCYON_SEED)")
|
||||
fs.IntVar(&c.TicksPerDay, "ticks-per-day", c.TicksPerDay, "simulation ticks per day (env HALCYON_TICKS_PER_DAY)")
|
||||
fs.IntVar(&c.CyclesPerTick, "cycles-per-tick", c.CyclesPerTick, "VM cycles per ship per tick (env HALCYON_CYCLES_PER_TICK)")
|
||||
fs.IntVar(&c.ProgramBytes, "program-bytes", c.ProgramBytes, "max ship program size (env HALCYON_PROGRAM_BYTES)")
|
||||
fs.IntVar(&c.RAMBytes, "ram-bytes", c.RAMBytes, "ship RAM size (env HALCYON_RAM_BYTES)")
|
||||
fs.IntVar(&c.CommBytes, "comm-bytes", c.CommBytes, "uplink/downlink buffer size (env HALCYON_COMM_BYTES)")
|
||||
fs.IntVar(&c.AsteroidCount, "asteroids", c.AsteroidCount, "number of asteroids (env HALCYON_ASTEROIDS)")
|
||||
return &c, nil
|
||||
}
|
||||
|
||||
// EnvVars lists the environment variables that set the world, for documentation.
|
||||
var EnvVars = []string{
|
||||
"WH_SEED", "WH_TICKS_PER_DAY", "WH_CYCLES_PER_TICK", "WH_PROGRAM_BYTES",
|
||||
"WH_RAM_BYTES", "WH_COMM_BYTES", "WH_ASTEROIDS",
|
||||
"HALCYON_SEED", "HALCYON_TICKS_PER_DAY", "HALCYON_CYCLES_PER_TICK", "HALCYON_PROGRAM_BYTES",
|
||||
"HALCYON_RAM_BYTES", "HALCYON_COMM_BYTES", "HALCYON_ASTEROIDS",
|
||||
}
|
||||
|
||||
func (c *Config) applyEnv(get func(string) string) error {
|
||||
@@ -124,13 +124,13 @@ func (c *Config) applyEnv(get func(string) string) error {
|
||||
err = fmt.Errorf("%s=%q: %w", name, v, err)
|
||||
}
|
||||
}
|
||||
num("WH_SEED", &c.Seed)
|
||||
num("WH_TICKS_PER_DAY", &c.TicksPerDay)
|
||||
num("WH_CYCLES_PER_TICK", &c.CyclesPerTick)
|
||||
num("WH_PROGRAM_BYTES", &c.ProgramBytes)
|
||||
num("WH_RAM_BYTES", &c.RAMBytes)
|
||||
num("WH_COMM_BYTES", &c.CommBytes)
|
||||
num("WH_ASTEROIDS", &c.AsteroidCount)
|
||||
num("HALCYON_SEED", &c.Seed)
|
||||
num("HALCYON_TICKS_PER_DAY", &c.TicksPerDay)
|
||||
num("HALCYON_CYCLES_PER_TICK", &c.CyclesPerTick)
|
||||
num("HALCYON_PROGRAM_BYTES", &c.ProgramBytes)
|
||||
num("HALCYON_RAM_BYTES", &c.RAMBytes)
|
||||
num("HALCYON_COMM_BYTES", &c.CommBytes)
|
||||
num("HALCYON_ASTEROIDS", &c.AsteroidCount)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -141,5 +141,5 @@ func DatabaseURL() string {
|
||||
if v := os.Getenv("DATABASE_URL"); v != "" {
|
||||
return v
|
||||
}
|
||||
return "sqlite:wh.db"
|
||||
return "sqlite:halcyon.db"
|
||||
}
|
||||
|
||||
@@ -26,9 +26,9 @@ func TestBindDefaults(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestBindEnvAndFlagPrecedence(t *testing.T) {
|
||||
t.Setenv("WH_SEED", "42")
|
||||
t.Setenv("WH_TICKS_PER_DAY", "720")
|
||||
t.Setenv("WH_ASTEROIDS", "60")
|
||||
t.Setenv("HALCYON_SEED", "42")
|
||||
t.Setenv("HALCYON_TICKS_PER_DAY", "720")
|
||||
t.Setenv("HALCYON_ASTEROIDS", "60")
|
||||
|
||||
c, err := bind(t)
|
||||
if err != nil {
|
||||
@@ -49,21 +49,21 @@ func TestBindEnvAndFlagPrecedence(t *testing.T) {
|
||||
|
||||
func TestBindRejectsBadEnv(t *testing.T) {
|
||||
for _, v := range []string{"lots", "-3", "1.5"} {
|
||||
t.Setenv("WH_SEED", v)
|
||||
t.Setenv("HALCYON_SEED", v)
|
||||
if _, err := bind(t); err == nil {
|
||||
t.Errorf("WH_SEED=%q should be rejected", v)
|
||||
t.Errorf("HALCYON_SEED=%q should be rejected", v)
|
||||
}
|
||||
}
|
||||
t.Setenv("WH_SEED", "")
|
||||
t.Setenv("WH_COMM_BYTES", "big")
|
||||
t.Setenv("HALCYON_SEED", "")
|
||||
t.Setenv("HALCYON_COMM_BYTES", "big")
|
||||
if _, err := bind(t); err == nil {
|
||||
t.Error("WH_COMM_BYTES=big should be rejected")
|
||||
t.Error("HALCYON_COMM_BYTES=big should be rejected")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDatabaseURL(t *testing.T) {
|
||||
t.Setenv("DATABASE_URL", "")
|
||||
if DatabaseURL() != "sqlite:wh.db" {
|
||||
if DatabaseURL() != "sqlite:halcyon.db" {
|
||||
t.Fatal("default")
|
||||
}
|
||||
t.Setenv("DATABASE_URL", "postgres://x")
|
||||
|
||||
Reference in New Issue
Block a user