53 lines
1.6 KiB
Gleam
53 lines
1.6 KiB
Gleam
import argv
|
|
import dot_env
|
|
import gleam/io
|
|
import gleam/list
|
|
import gleam_community/ansi
|
|
import spacetraders_api
|
|
import spacetraders_client/env
|
|
import spacetraders_client/pretty_print
|
|
import spacetraders_models/agent_symbol
|
|
import spacetraders_models/faction_symbol
|
|
import spacetraders_sdk
|
|
|
|
const usage = "\nusage: gleam -m spacetraders_register AGENT_SYMBOL FACTION_SYMBOL"
|
|
|
|
pub fn main() {
|
|
dot_env.load_default()
|
|
let assert Ok(account_token) = env.get_account_token()
|
|
as "no valid account token provided"
|
|
let args = argv.load().arguments
|
|
let assert [agent_symbol_str, ..args] = args
|
|
as { "missing agent symbol argument\n" <> usage }
|
|
let assert Ok(agent_symbol) = agent_symbol.parse(agent_symbol_str)
|
|
as { "invalid agent symbol\n" <> usage }
|
|
let assert [faction_symbol_str, ..] = args
|
|
as { "missing faction symbol argument\n" <> usage }
|
|
let assert Ok(faction_symbol) = faction_symbol.parse(faction_symbol_str)
|
|
as { "invalid faction symbol\n" <> usage }
|
|
let assert Ok(registered) =
|
|
spacetraders_api.register_new_agent(
|
|
account_token,
|
|
agent_symbol,
|
|
faction_symbol,
|
|
)
|
|
as "Failed to register agent"
|
|
|
|
io.println(ansi.bold(ansi.underline(ansi.green("Successfully Registered"))))
|
|
io.println(
|
|
ansi.bold("Agent Token:\t")
|
|
<> spacetraders_sdk.agent_token_to_string(registered.token),
|
|
)
|
|
io.println("")
|
|
|
|
pretty_print.agent(registered.agent)
|
|
io.println("")
|
|
|
|
pretty_print.contract(registered.contract)
|
|
io.println("")
|
|
|
|
list.each(registered.ships, fn(ship) {
|
|
pretty_print.ship(ship)
|
|
io.println("")
|
|
})
|
|
}
|