gleam-spacetraders-client/dev/spacetraders_register.gleam
LilyRose2798 71158b56a0
Some checks failed
test / test (push) Has been cancelled
Start using shore
2025-06-25 16:20:59 +10:00

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("")
})
}