forked from hailey.at/cocoon
An atproto PDS written in Go

use cli.context for envvars

Changed files
+8 -7
cmd
cocoon
+8 -7
cmd/cocoon/main.go
··· 47 47 }, 48 48 &cli.StringFlag{ 49 49 Name: "database-url", 50 + Aliases: []string{"db-url"}, 50 51 Usage: "PostgreSQL connection string (required if db-type is postgres)", 51 52 EnvVars: []string{"COCOON_DATABASE_URL", "DATABASE_URL"}, 52 53 }, ··· 293 294 }, 294 295 }, 295 296 Action: func(cmd *cli.Context) error { 296 - db, err := newDb() 297 + db, err := newDb(cmd) 297 298 if err != nil { 298 299 return err 299 300 } ··· 332 333 }, 333 334 }, 334 335 Action: func(cmd *cli.Context) error { 335 - db, err := newDb() 336 + db, err := newDb(cmd) 336 337 if err != nil { 337 338 return err 338 339 } ··· 359 360 }, 360 361 } 361 362 362 - func newDb() (*gorm.DB, error) { 363 - dbType := os.Getenv("COCOON_DB_TYPE") 363 + func newDb(cmd *cli.Context) (*gorm.DB, error) { 364 + dbType := cmd.String("db-type") 364 365 if dbType == "" { 365 366 dbType = "sqlite" 366 367 } 367 368 368 369 switch dbType { 369 370 case "postgres": 370 - databaseURL := os.Getenv("COCOON_DATABASE_URL") 371 + databaseURL := cmd.String("database-url") 371 372 if databaseURL == "" { 372 - databaseURL = os.Getenv("DATABASE_URL") 373 + databaseURL = cmd.String("database-url") 373 374 } 374 375 if databaseURL == "" { 375 376 return nil, fmt.Errorf("COCOON_DATABASE_URL or DATABASE_URL must be set when using postgres") 376 377 } 377 378 return gorm.Open(postgres.Open(databaseURL), &gorm.Config{}) 378 379 default: 379 - dbName := os.Getenv("COCOON_DB_NAME") 380 + dbName := cmd.String("db-name") 380 381 if dbName == "" { 381 382 dbName = "cocoon.db" 382 383 }