Skip to content

Commit 1f36d23

Browse files
authored
Allow stdin input of cert for needs-renewal (#1157)
1 parent f0aab19 commit 1f36d23

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

command/ssh/needsRenewal.go

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -77,25 +77,36 @@ Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".`,
7777
}
7878

7979
func needsRenewalAction(ctx *cli.Context) error {
80-
if err := errs.NumberOfArguments(ctx, 1); err != nil {
81-
return errs.NewExitError(err, 255)
80+
if err := errs.MinMaxNumberOfArguments(ctx, 0, 1); err != nil {
81+
return errs.NewExitError(errors.Wrap(err, "too many arguments"), 255)
82+
}
83+
84+
var name string
85+
switch ctx.NArg() {
86+
case 0:
87+
name = "-"
88+
case 1:
89+
name = ctx.Args().First()
90+
default:
91+
return errs.NewExitError(errors.Errorf("too many arguments"), 255)
8292
}
8393

8494
var (
85-
certFile = ctx.Args().First()
8695
expiresIn = ctx.String("expires-in")
8796
isVerbose = ctx.Bool("verbose")
8897
)
8998

90-
_, err := os.Stat(certFile)
91-
switch {
92-
case os.IsNotExist(err):
93-
return errs.NewExitError(err, 2)
94-
case err != nil:
95-
return errs.NewExitError(err, 255)
99+
if name != "-" {
100+
_, err := os.Stat(name)
101+
switch {
102+
case os.IsNotExist(err):
103+
return errs.NewExitError(err, 2)
104+
case err != nil:
105+
return errs.NewExitError(err, 255)
106+
}
96107
}
97108

98-
b, err := utils.ReadFile(certFile)
109+
b, err := utils.ReadFile(name)
99110
if err != nil {
100111
return errs.NewExitError(err, 255)
101112
}

0 commit comments

Comments
 (0)