mirror of
https://codeberg.org/scip/tablizer.git
synced 2025-12-17 04:30:56 +01:00
added shell mode output
This commit is contained in:
@@ -28,7 +28,8 @@ var Separator string
|
||||
var OutflagExtended bool
|
||||
var OutflagMarkdown bool
|
||||
var OutflagOrgtable bool
|
||||
var OutflagShell bool
|
||||
var OutputMode string
|
||||
|
||||
var Version = "v1.0.2"
|
||||
var Version = "v1.0.3"
|
||||
var validOutputmodes = "(orgtbl|markdown|extended|ascii)"
|
||||
|
||||
@@ -57,6 +57,9 @@ func PrepareModeFlags() error {
|
||||
OutputMode = "markdown"
|
||||
case OutflagOrgtable:
|
||||
OutputMode = "orgtbl"
|
||||
case OutflagShell:
|
||||
OutputMode = "shell"
|
||||
NoNumbering = true
|
||||
default:
|
||||
OutputMode = "ascii"
|
||||
}
|
||||
|
||||
@@ -27,20 +27,22 @@ import (
|
||||
|
||||
func printData(data *Tabdata) {
|
||||
// prepare headers: add numbers to headers
|
||||
if !NoNumbering {
|
||||
numberedHeaders := []string{}
|
||||
for i, head := range data.headers {
|
||||
if len(Columns) > 0 {
|
||||
// -c specified
|
||||
if !contains(UseColumns, i+1) {
|
||||
// ignore this one
|
||||
continue
|
||||
}
|
||||
numberedHeaders := []string{}
|
||||
for i, head := range data.headers {
|
||||
if len(Columns) > 0 {
|
||||
// -c specified
|
||||
if !contains(UseColumns, i+1) {
|
||||
// ignore this one
|
||||
continue
|
||||
}
|
||||
}
|
||||
if NoNumbering {
|
||||
numberedHeaders = append(numberedHeaders, head)
|
||||
} else {
|
||||
numberedHeaders = append(numberedHeaders, fmt.Sprintf("%s(%d)", head, i+1))
|
||||
}
|
||||
data.headers = numberedHeaders
|
||||
}
|
||||
data.headers = numberedHeaders
|
||||
|
||||
// prepare data
|
||||
if len(Columns) > 0 {
|
||||
@@ -69,6 +71,8 @@ func printData(data *Tabdata) {
|
||||
printOrgmodeData(data)
|
||||
case "markdown":
|
||||
printMarkdownData(data)
|
||||
case "shell":
|
||||
printShellData(data)
|
||||
default:
|
||||
printAsciiData(data)
|
||||
}
|
||||
@@ -177,3 +181,26 @@ func printExtendedData(data *Tabdata) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Shell output, ready to be eval'd. Just like FreeBSD stat(1)
|
||||
*/
|
||||
func printShellData(data *Tabdata) {
|
||||
if len(data.entries) > 0 {
|
||||
var idx int
|
||||
for _, entry := range data.entries {
|
||||
idx = 0
|
||||
for i, value := range entry {
|
||||
if len(Columns) > 0 {
|
||||
if !contains(UseColumns, i+1) {
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Printf("%s=\"%s\" ", data.headers[idx], value)
|
||||
idx++
|
||||
}
|
||||
fmt.Println()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user