Skip to content

Instantly share code, notes, and snippets.

@petemoore
Last active December 20, 2017 16:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save petemoore/b99767b70fee952d62677aa9cae5a5f5 to your computer and use it in GitHub Desktop.
Save petemoore/b99767b70fee952d62677aa9cae5a5f5 to your computer and use it in GitHub Desktop.
package main
import (
"encoding/json"
"log"
"os"
"time"
tcclient "github.com/taskcluster/taskcluster-client-go"
"github.com/taskcluster/taskcluster-client-go/secrets"
)
func main() {
if len(os.Args) != 2 || (os.Args[1] != "past" && os.Args[1] != "future") {
log.Fatal("Usage: " + os.Args[0] + " (past|future)")
}
var yearOffset int
switch os.Args[1] {
case "past":
yearOffset = -1
case "future":
yearOffset = 1
}
secretName := "garbage/pmoore/cachedExpiryTest"
secretData := map[string]string{
"name": "Peter Moore",
"ircnick": "pmoore",
}
mySecrets, err := secrets.New(nil)
if err != nil {
log.Fatalf("Could not create new secrets client: %v", err)
}
secBytes, err := json.Marshal(secretData)
if err != nil {
log.Fatalf("Could not convert secret %#v to json: %v", secretData, err)
}
err = mySecrets.Set(
secretName,
&secrets.Secret{
Expires: tcclient.Time(time.Now().AddDate(yearOffset, 0, 0)),
Secret: json.RawMessage(secBytes),
},
)
if err != nil {
log.Printf("Problem publishing new secrets: %v", err)
}
s, err := mySecrets.Get(secretName)
if err != nil {
log.Fatalf("Error retrieving secret: %v", err)
}
log.Print("Secret name: " + secretName)
log.Print("Secret value: " + string(s.Secret))
log.Print("Expiry: " + s.Expires.String())
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment