mirror of
https://gitea.com/gitea/tea.git
synced 2024-11-25 03:51:36 +01:00
f445ac7521
fix lint fix lint Move print TrackedTimesList to print package Move AbsPathWithExpansion to utils/path.go rename module intern to config Move Subcomands into it's own Packages Split times subcomands into own sourcefiles Split repos subcomands into own sourcefiles Split releases subcomands into own sourcefiles Split pulls subcomands into own sourcefiles Split milestones subcomands into own sourcefiles Split login subcomands into own sourcefiles Split labels subcomands into own sourcefiles split issues subcomands into own sourcefiles mv Move Interactive Login Creation to interact package Move Add Login function to intern/login.go apply from review lint: add description to exported func smal nits Move DetailViews stdout print func to print package Refactor: * Move Config & Login routines into intern package * rename global var in cmd * Move help func to utils Co-authored-by: 6543 <6543@obermui.de> Reviewed-on: https://gitea.com/gitea/tea/pulls/206 Reviewed-by: Norwin <noerw@noreply.gitea.io> Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
93 lines
2.4 KiB
Go
93 lines
2.4 KiB
Go
// Copyright 2018 The Gitea Authors. All rights reserved.
|
|
// Use of this source code is governed by a MIT-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package print
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"strconv"
|
|
"strings"
|
|
|
|
"github.com/olekukonko/tablewriter"
|
|
)
|
|
|
|
var (
|
|
showLog bool
|
|
)
|
|
|
|
// errorf printf content as an error information
|
|
func errorf(format string, a ...interface{}) {
|
|
fmt.Printf(format, a...)
|
|
}
|
|
|
|
// outputtable prints structured data as table
|
|
func outputtable(headers []string, values [][]string) {
|
|
table := tablewriter.NewWriter(os.Stdout)
|
|
if len(headers) > 0 {
|
|
table.SetHeader(headers)
|
|
}
|
|
for _, value := range values {
|
|
table.Append(value)
|
|
}
|
|
table.Render()
|
|
}
|
|
|
|
// outputsimple prints structured data as space delimited value
|
|
func outputsimple(headers []string, values [][]string) {
|
|
for _, value := range values {
|
|
fmt.Printf(strings.Join(value, " "))
|
|
fmt.Printf("\n")
|
|
}
|
|
}
|
|
|
|
// outputdsv prints structured data as delimiter separated value format
|
|
func outputdsv(headers []string, values [][]string, delimiterOpt ...string) {
|
|
delimiter := ","
|
|
if len(delimiterOpt) > 0 {
|
|
delimiter = delimiterOpt[0]
|
|
}
|
|
fmt.Println("\"" + strings.Join(headers, "\""+delimiter+"\"") + "\"")
|
|
for _, value := range values {
|
|
fmt.Printf("\"")
|
|
fmt.Printf(strings.Join(value, "\""+delimiter+"\""))
|
|
fmt.Printf("\"")
|
|
fmt.Printf("\n")
|
|
}
|
|
}
|
|
|
|
// outputyaml prints structured data as yaml
|
|
func outputyaml(headers []string, values [][]string) {
|
|
for _, value := range values {
|
|
fmt.Println("-")
|
|
for j, val := range value {
|
|
intVal, _ := strconv.Atoi(val)
|
|
if strconv.Itoa(intVal) == val {
|
|
fmt.Printf(" %s: %s\n", headers[j], val)
|
|
} else {
|
|
fmt.Printf(" %s: '%s'\n", headers[j], val)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// OutputList provides general function to convert given list of items
|
|
// into several outputs (table, csv, simple, tsv, yaml)
|
|
func OutputList(output string, headers []string, values [][]string) {
|
|
switch {
|
|
case output == "" || output == "table":
|
|
outputtable(headers, values)
|
|
case output == "csv":
|
|
outputdsv(headers, values, ",")
|
|
case output == "simple":
|
|
outputsimple(headers, values)
|
|
case output == "tsv":
|
|
outputdsv(headers, values, "\t")
|
|
case output == "yaml":
|
|
outputyaml(headers, values)
|
|
default:
|
|
errorf("unknown output type '" + output + "', available types are:\n- csv: comma-separated values\n- simple: space-separated values\n- table: auto-aligned table format (default)\n- tsv: tab-separated values\n- yaml: YAML format\n")
|
|
}
|
|
}
|