123456789module cli1011import json12import src.fmt1314pub fn amber(text string) string {15 return fmt.amber(text)16}1718pub fn red(text string) string {19 return fmt.red(text)20}2122pub fn green(text string) string {23 return fmt.green(text)24}2526pub fn dim(text string) string {27 return fmt.dim(text)28}2930pub fn ok(message string) {31 println(' ${fmt.amber(fmt.glyph_ok)} ${message}')32}3334pub fn note(message string) {35 println(' ${fmt.dim(message)}')36}3738pub fn warn(message string) {39 println(' ${fmt.amber('!')} ${message}')40}414243pub fn fail(message string) int {44 eprintln(' ${fmt.red(fmt.glyph_fail)} ${message}')45 return 146}4748pub fn fail_json(message string) int {49 eprintln(json.encode({50 'error': message51 }))52 return 153}5455pub fn usage_error(message string) int {56 eprintln(' ${fmt.red(fmt.glyph_fail)} ${message}')57 return 258}596061pub fn refuse(as_json bool, message string) int {62 if as_json {63 return fail_json(message)64 }65 return fail(message)66}6768pub fn emit_json(value string) {69 println(value)70}