2019-10-07 08:14:47 -06:00
|
|
|
// Copyright (c) Mainflux
|
2018-08-26 13:15:48 +02:00
|
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
2018-08-16 13:41:27 +02:00
|
|
|
package cli
|
2018-07-11 13:53:37 +02:00
|
|
|
|
|
|
|
import (
|
2018-12-16 20:01:37 +01:00
|
|
|
"encoding/json"
|
2018-07-11 13:53:37 +02:00
|
|
|
"fmt"
|
2023-07-24 17:58:14 +05:30
|
|
|
"os"
|
2023-01-13 16:33:00 +03:00
|
|
|
"time"
|
2018-07-11 13:53:37 +02:00
|
|
|
|
|
|
|
"github.com/fatih/color"
|
2023-08-11 02:30:25 -07:00
|
|
|
"github.com/hokaccha/go-prettyjson"
|
2018-07-11 13:53:37 +02:00
|
|
|
)
|
|
|
|
|
2018-10-14 16:44:21 +02:00
|
|
|
var (
|
2023-06-14 12:40:37 +02:00
|
|
|
// Limit query parameter.
|
2023-08-08 13:01:59 +03:00
|
|
|
Limit uint64 = 10
|
2023-06-14 12:40:37 +02:00
|
|
|
// Offset query parameter.
|
2023-08-08 13:01:59 +03:00
|
|
|
Offset uint64 = 0
|
2023-06-14 12:40:37 +02:00
|
|
|
// Name query parameter.
|
2019-05-30 15:33:49 +02:00
|
|
|
Name string = ""
|
2023-06-14 12:40:37 +02:00
|
|
|
// Email query parameter.
|
2022-06-17 18:32:23 +03:00
|
|
|
Email string = ""
|
2023-06-14 12:40:37 +02:00
|
|
|
// Metadata query parameter.
|
2022-06-17 18:32:23 +03:00
|
|
|
Metadata string = ""
|
2023-06-14 12:40:37 +02:00
|
|
|
// Status query parameter.
|
2022-08-11 19:58:45 +03:00
|
|
|
Status string = ""
|
2023-06-14 12:40:37 +02:00
|
|
|
// ConfigPath config path parameter.
|
2020-10-31 23:29:06 +00:00
|
|
|
ConfigPath string = ""
|
2023-06-14 12:40:37 +02:00
|
|
|
// State query parameter.
|
2023-05-25 06:02:46 +08:00
|
|
|
State string = ""
|
2023-06-14 12:40:37 +02:00
|
|
|
// Topic query parameter.
|
2023-05-25 06:02:46 +08:00
|
|
|
Topic string = ""
|
2023-06-14 12:40:37 +02:00
|
|
|
// Contact query parameter.
|
2023-05-25 06:02:46 +08:00
|
|
|
Contact string = ""
|
2023-06-14 12:40:37 +02:00
|
|
|
// RawOutput raw output mode.
|
2020-10-31 23:29:06 +00:00
|
|
|
RawOutput bool = false
|
2018-10-14 16:44:21 +02:00
|
|
|
)
|
2018-07-11 13:53:37 +02:00
|
|
|
|
2018-12-16 20:01:37 +01:00
|
|
|
func logJSON(iList ...interface{}) {
|
|
|
|
for _, i := range iList {
|
|
|
|
m, err := json.Marshal(i)
|
|
|
|
if err != nil {
|
|
|
|
logError(err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
pj, err := prettyjson.Format(m)
|
|
|
|
if err != nil {
|
|
|
|
logError(err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2023-07-24 17:58:14 +05:30
|
|
|
fmt.Fprintf(os.Stdout, "\n%s\n\n", string(pj))
|
2018-12-16 20:01:37 +01:00
|
|
|
}
|
2018-07-11 13:53:37 +02:00
|
|
|
}
|
|
|
|
|
2018-10-14 16:44:21 +02:00
|
|
|
func logUsage(u string) {
|
2023-07-24 17:58:14 +05:30
|
|
|
fmt.Fprintf(os.Stdout, color.YellowString("\nusage: %s\n\n"), u)
|
2018-07-11 13:53:37 +02:00
|
|
|
}
|
|
|
|
|
2018-10-14 16:44:21 +02:00
|
|
|
func logError(err error) {
|
2020-10-31 23:29:06 +00:00
|
|
|
boldRed := color.New(color.FgRed, color.Bold)
|
2023-07-24 17:58:14 +05:30
|
|
|
boldRed.Fprintf(os.Stderr, "\nerror: ")
|
2020-10-31 23:29:06 +00:00
|
|
|
|
2023-07-24 17:58:14 +05:30
|
|
|
fmt.Fprintf(os.Stderr, "%s\n\n", color.RedString(err.Error()))
|
2018-07-11 13:53:37 +02:00
|
|
|
}
|
|
|
|
|
2018-10-14 16:44:21 +02:00
|
|
|
func logOK() {
|
2023-07-24 17:58:14 +05:30
|
|
|
fmt.Fprintf(os.Stdout, "\n%s\n\n", color.BlueString("ok"))
|
2018-12-16 20:01:37 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
func logCreated(e string) {
|
2020-10-31 23:29:06 +00:00
|
|
|
if RawOutput {
|
2023-07-24 17:58:14 +05:30
|
|
|
fmt.Fprintln(os.Stdout, e)
|
2020-10-31 23:29:06 +00:00
|
|
|
} else {
|
2023-07-24 17:58:14 +05:30
|
|
|
fmt.Fprintf(os.Stdout, color.BlueString("\ncreated: %s\n\n"), e)
|
2020-10-31 23:29:06 +00:00
|
|
|
}
|
|
|
|
}
|
2022-06-17 18:32:23 +03:00
|
|
|
|
2023-01-13 16:33:00 +03:00
|
|
|
func logRevokedTime(t time.Time) {
|
|
|
|
if RawOutput {
|
2023-07-24 17:58:14 +05:30
|
|
|
fmt.Fprintln(os.Stdout, t)
|
2023-01-13 16:33:00 +03:00
|
|
|
} else {
|
2023-07-24 17:58:14 +05:30
|
|
|
fmt.Fprintf(os.Stdout, color.BlueString("\nrevoked: %v\n\n"), t)
|
2023-01-13 16:33:00 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-06-17 18:32:23 +03:00
|
|
|
func convertMetadata(m string) (map[string]interface{}, error) {
|
|
|
|
var metadata map[string]interface{}
|
|
|
|
if m == "" {
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
if err := json.Unmarshal([]byte(Metadata), &metadata); err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return nil, nil
|
|
|
|
}
|