123456789module cli1011import json12import src.fmt1314pub fn color_enabled() bool {15 return fmt.colour_enabled()16}1718pub fn amber(text string) string {19 return fmt.amber(text)20}2122pub fn red(text string) string {23 return fmt.red(text)24}2526pub fn green(text string) string {27 return fmt.green(text)28}2930pub fn dim(text string) string {31 return fmt.dim(text)32}3334pub fn ok(message string) {35 println(' ${fmt.amber(fmt.glyph_ok)} ${message}')36}3738pub fn note(message string) {39 println(' ${fmt.dim(message)}')40}4142pub fn warn(message string) {43 println(' ${fmt.amber('!')} ${message}')44}454647pub fn fail(message string) int {48 eprintln(' ${fmt.red(fmt.glyph_fail)} ${message}')49 return 150}5152pub fn fail_json(message string) int {53 eprintln(json.encode({54 'error': message55 }))56 return 157}5859pub fn usage_error(message string) int {60 eprintln(' ${fmt.red(fmt.glyph_fail)} ${message}')61 return 262}636465pub fn refuse(as_json bool, message string) int {66 if as_json {67 return fail_json(message)68 }69 return fail(message)70}7172pub fn emit_json(value string) {73 println(value)74}