package client import ( "bufio" "fmt" "os" ) func readStdin(message string) string { fmt.Println(message) scanner := bufio.NewScanner(os.Stdin) scanner.Scan() return scanner.Text() } func printInfo(info string){ fmt.Println(info) } func printError(err string) { fmt.Fprintln(os.Stderr, err) } func showHelp() { fmt.Println("Comandos da aplicação cliente:") fmt.Println("-user : Especifica o ficheiro com dados do utilizador. Por omissão, será assumido que esse ficheiro é userdata.p12.") fmt.Println("send : Envia uma mensagem com assunto destinada ao utilizador com identificador . O conteúdo da mensagem será lido do stdin, e o tamanho deve ser limitado a 1000 bytes.") fmt.Println("askqueue: Solicita ao servidor que lhe envie a lista de mensagens não lidas da queue do utilizador.") fmt.Println("getmsg : Solicita ao servidor o envio da mensagem da sua queue com número .") fmt.Println("register: Solicita ao servidor o registo do utilizador.") fmt.Println("login: Solicita ao servidor o login do utilizador.") fmt.Println("logout: Elimina o token de acesso do utilizador.") fmt.Println("help: Imprime instruções de uso do programa.") } func showMessagesInfo(page int, numPages int, messages []ClientMessageInfo) { if messages == nil { fmt.Println("No unread messages in the queue") return } for _, message := range messages { if message.decryptError != nil { fmt.Printf("ERROR: %v:%v:%v:", message.Num, message.FromUID, message.Timestamp) fmt.Println(message.decryptError) } else { fmt.Printf("%v:%v:%v:%v\n", message.Num, message.FromUID, message.Timestamp, message.Subject) } } fmt.Printf("Page %v/%v\n", page, numPages) } func showMessage(message ClientMessage) { fmt.Printf("From: %s\n", message.FromUID) fmt.Printf("To: %s\n", message.ToUID) fmt.Printf("Subject: %s\n", message.Subject) fmt.Printf("Body: %s\n", message.Body) }