29 lines
441 B
Go
29 lines
441 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"isle/admin"
|
|
"os"
|
|
)
|
|
|
|
func readAdmin(path string) (admin.Admin, error) {
|
|
|
|
if path == "-" {
|
|
|
|
adm, err := admin.FromReader(os.Stdin)
|
|
if err != nil {
|
|
return admin.Admin{}, fmt.Errorf("parsing admin.json from stdin: %w", err)
|
|
}
|
|
|
|
return adm, nil
|
|
}
|
|
|
|
f, err := os.Open(path)
|
|
if err != nil {
|
|
return admin.Admin{}, fmt.Errorf("opening file: %w", err)
|
|
}
|
|
defer f.Close()
|
|
|
|
return admin.FromReader(f)
|
|
}
|