Skip to content

Commit

Permalink
feat: add formatTextTable for non-escape table format
Browse files Browse the repository at this point in the history
  • Loading branch information
nekrassov01 committed Jan 14, 2024
1 parent a288a07 commit 28cfa74
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 27 deletions.
20 changes: 13 additions & 7 deletions io.go
Expand Up @@ -15,12 +15,14 @@ type format int

const (
formatJSON format = iota
formatMarkdown
formatBacklog
formatTextTable
formatMarkdownTable
formatBacklogTable
)

var formats = []string{
"json",
"table",
"markdown",
"backlog",
}
Expand Down Expand Up @@ -74,7 +76,7 @@ func out(input []*certInfo, format string, omit bool) (string, error) {
switch format {
case formatJSON.String():
return toJSON(input)
case formatMarkdown.String(), formatBacklog.String():
case formatTextTable.String(), formatMarkdownTable.String(), formatBacklogTable.String():
return toTable(input, format, omit)
default:
return "", fmt.Errorf(
Expand All @@ -96,13 +98,17 @@ func toTable(input []*certInfo, format string, omit bool) (string, error) {
var table *mintab.Table
defaultOpt := mintab.WithEscapeTargets([]string{"*"})
switch {
case omit && format == formatMarkdown.String():
case omit && format == formatTextTable.String():
table = mintab.NewTable(defaultOpt, mintab.WithIgnoreFields([]int{8, 9}))
case omit && format == formatBacklog.String():
case omit && format == formatMarkdownTable.String():
table = mintab.NewTable(defaultOpt, mintab.WithIgnoreFields([]int{8, 9}), mintab.WithFormat(mintab.MarkdownFormat))
case omit && format == formatBacklogTable.String():
table = mintab.NewTable(defaultOpt, mintab.WithIgnoreFields([]int{8, 9}), mintab.WithFormat(mintab.BacklogFormat))
case !omit && format == formatMarkdown.String():
case !omit && format == formatTextTable.String():
table = mintab.NewTable(defaultOpt)
case !omit && format == formatBacklog.String():
case !omit && format == formatMarkdownTable.String():
table = mintab.NewTable(defaultOpt, mintab.WithFormat(mintab.MarkdownFormat))
case !omit && format == formatBacklogTable.String():
table = mintab.NewTable(defaultOpt, mintab.WithFormat(mintab.BacklogFormat))
}
if err := table.Load(input); err != nil {
Expand Down
92 changes: 72 additions & 20 deletions io_test.go
Expand Up @@ -147,27 +147,40 @@ func Test_out(t *testing.T) {
wantErr: false,
},
{
name: "markdown",
name: "table",
args: args{
input: input,
format: formatMarkdown.String(),
format: formatTextTable.String(),
omit: false,
},
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter | CurrentTime | DaysLeft |
|------------|------------|-------------|------------------|---------------|------|---------------------------|---------------------------|---------------------------|----------|
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 | 2024-01-01T09:00:00+09:00 | 365 |
`,
wantErr: false,
},
{
name: "markdown",
args: args{
input: input,
format: formatMarkdownTable.String(),
omit: false,
},
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter | CurrentTime | DaysLeft |
|------------|------------|-------------|----------------------------|-------------------------|------|---------------------------|---------------------------|---------------------------|----------|
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 | 2024-01-01T09:00:00+09:00 | 365 |
`,
wantErr: false,
},
{
name: "backlog",
args: args{
input: input,
format: formatBacklog.String(),
format: formatBacklogTable.String(),
omit: false,
},
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter | CurrentTime | DaysLeft |h
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 | 2024-01-01T09:00:00+09:00 | 365 |
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter | CurrentTime | DaysLeft |h
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 | 2024-01-01T09:00:00+09:00 | 365 |
`,
wantErr: false,
},
Expand Down Expand Up @@ -195,27 +208,40 @@ func Test_out(t *testing.T) {
wantErr: false,
},
{
name: "markdown+omit",
name: "table+omit",
args: args{
input: input,
format: formatMarkdown.String(),
format: formatTextTable.String(),
omit: true,
},
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter |
|------------|------------|-------------|------------------|---------------|------|---------------------------|---------------------------|
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 |
`,
wantErr: false,
},
{
name: "markdown+omit",
args: args{
input: input,
format: formatMarkdownTable.String(),
omit: true,
},
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter |
|------------|------------|-------------|----------------------------|-------------------------|------|---------------------------|---------------------------|
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 |
`,
wantErr: false,
},
{
name: "backlog+omit",
args: args{
input: input,
format: formatBacklog.String(),
format: formatBacklogTable.String(),
omit: true,
},
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter |h
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 |
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter |h
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 |
`,
wantErr: false,
},
Expand Down Expand Up @@ -316,52 +342,78 @@ func Test_toTable(t *testing.T) {
wantErr bool
}{
{
name: "markdown",
name: "table",
args: args{
input: input,
format: formatMarkdown.String(),
format: formatTextTable.String(),
omit: false,
},
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter | CurrentTime | DaysLeft |
|------------|------------|-------------|------------------|---------------|------|---------------------------|---------------------------|---------------------------|----------|
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 | 2024-01-01T09:00:00+09:00 | 365 |
`,
wantErr: false,
},
{
name: "markdown",
args: args{
input: input,
format: formatMarkdownTable.String(),
omit: false,
},
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter | CurrentTime | DaysLeft |
|------------|------------|-------------|----------------------------|-------------------------|------|---------------------------|---------------------------|---------------------------|----------|
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 | 2024-01-01T09:00:00+09:00 | 365 |
`,
wantErr: false,
},
{
name: "backlog",
args: args{
input: input,
format: formatBacklog.String(),
format: formatBacklogTable.String(),
omit: false,
},
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter | CurrentTime | DaysLeft |h
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 | 2024-01-01T09:00:00+09:00 | 365 |
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter | CurrentTime | DaysLeft |h
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 | 2024-01-01T09:00:00+09:00 | 365 |
`,
wantErr: false,
},
{
name: "markdown+omit",
name: "table+omit",
args: args{
input: input,
format: formatMarkdown.String(),
format: formatTextTable.String(),
omit: true,
},
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter |
|------------|------------|-------------|------------------|---------------|------|---------------------------|---------------------------|
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 |
`,
wantErr: false,
},
{
name: "markdown+omit",
args: args{
input: input,
format: formatMarkdownTable.String(),
omit: true,
},
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter |
|------------|------------|-------------|----------------------------|-------------------------|------|---------------------------|---------------------------|
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 |
`,
wantErr: false,
},
{
name: "backlog+omit",
args: args{
input: input,
format: formatBacklog.String(),
format: formatBacklogTable.String(),
omit: true,
},
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter |h
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 |
want: `| DomainName | AccessPort | IPAddresses | Issuer | CommonName | SANs | NotBefore | NotAfter |h
| localhost | 8443 | N/A | CN=local test CA | local test CA | N/A | 2023-01-01T09:00:00+09:00 | 2025-01-01T09:00:00+09:00 |
`,
wantErr: false,
},
Expand Down

0 comments on commit 28cfa74

Please sign in to comment.