Skip to content

Commit f09d49d

Browse files
committed
sign-in: add duration argument
1 parent e117ae6 commit f09d49d

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

cmd/aws-sign-in/main.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"log"
99
"net/http"
1010
"net/url"
11+
"strconv"
1112

1213
"github.com/aws/aws-sdk-go-v2/aws"
1314
"github.com/aws/aws-sdk-go-v2/aws/external"
@@ -21,7 +22,7 @@ func main() {
2122
usage := `aws-sign-in.
2223
2324
Usage:
24-
aws-sign-in
25+
aws-sign-in [<duration>]
2526
aws-sign-in -h | --help
2627
2728
Options:
@@ -33,6 +34,7 @@ Options:
3334
}
3435

3536
var conf struct {
37+
Duration int `docopt:"<duration>"`
3638
}
3739
if err := arguments.Bind(&conf); err != nil {
3840
log.Fatalf("%v\n", err)
@@ -49,7 +51,7 @@ Options:
4951
log.Fatalf("Error retrieving credentials: %v\n", err)
5052
}
5153

52-
signinToken, err := getSignInToken(creds)
54+
signinToken, err := getSignInToken(creds, conf.Duration)
5355
if err != nil {
5456
log.Fatalf("Couldn't obtain sign-in token: %v\n", err)
5557
}
@@ -62,7 +64,7 @@ Options:
6264
fmt.Printf("If the browser didn't open, please visit the following url to sign in to the AWS console: %v\n", loginURL)
6365
}
6466

65-
func getSignInToken(creds aws.Credentials) (string, error) {
67+
func getSignInToken(creds aws.Credentials, duration int) (string, error) {
6668
reqJSON := fmt.Sprintf(`{"sessionId":"%s","sessionKey":"%s","sessionToken":"%s"}`,
6769
creds.AccessKeyID,
6870
creds.SecretAccessKey,
@@ -73,6 +75,9 @@ func getSignInToken(creds aws.Credentials) (string, error) {
7375

7476
values := url.Values{}
7577
values.Add("Action", "getSigninToken")
78+
if duration != 0 {
79+
values.Add("DurationSeconds", strconv.Itoa(duration))
80+
}
7681
values.Add("Session", reqJSON)
7782

7883
endpoint.RawQuery = values.Encode()

0 commit comments

Comments
 (0)