Skip to content

Instantly share code, notes, and snippets.

@michaljemala
Created March 23, 2018 11:25
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 michaljemala/4305cee7eecb92170faa7237ee6815de to your computer and use it in GitHub Desktop.
Save michaljemala/4305cee7eecb92170faa7237ee6815de to your computer and use it in GitHub Desktop.
systemd multi-line issue
TEST_KEY='{"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-nu6oq%40ringring-dev-98877.iam.gserviceaccount.com", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC5ymYTJeVxAi5s\niu0TXEd/5+pnneNLH8Wlu7DUq9SYVTifvoUpxYU6VfLMmVPPoqxSZeTeXmqewmKZ\n2LlVEs06zgxvSwAUdn2hAfaB8E/+p2qUHFdgIGK0c5tt7WMdHf2s3g87kCZ+RmHi\nDYesYwUR/v19vRSeCNyjKC0o3QXUmeoePUkupnO3o7FAXBSVpuAINzd4cKYmcpny\nCBbjsd/x5RmiKiDCwJcaaErYA4KgXLh7bw5y8DlOTnC5Zu531Fc5EAfkJ6vk/az2\nSnjxtSsQjV3bO4k0UnkRiBOKzPgDdK+SeFrw1Ac+7seqvQTSASVMM4jqa6PAwPJI\nhGNLptRNAgMBAAECggEAEuVge1sT2moP4a9BjIIKrZofT5mR1/6rwf70bbTqQvIL\n98dPUN/LfJLoRmHj0c7oOtstK2ar7miz0ZTmyJ3IbM4vGpSktfAVN+50rWONJ0fM\nwbKeOmMg1tyZNtV5iqkVt2LAZtzy5U3wP6cDoQdTKTDnhEXaVnZtRlTcPvc31BcF\nB4x8FQOtVi3D1gVKnn8L/mwmmM+hTDJffW/S+ia+l7Wy6Pv8+7F3R0pQ/wzkZhBo\nAcyOQI+7bxLRePXW3uBj/HGrgQMxF2jMnO/lu9doUest9x8jA1EEmHTSQa4xC+xO\nS2p18NRNupycB+MR1u4WEq2xGIxq8LyioZnitR0FIQKBgQDeJDg9ApnI7lPTUf+E\nVbk6bwMhAh9LWzCAFo1xfCzOCXIdx8W3sXBovRbOUrArzSElSFt77OFqTEX90O4s\nIYXtL+1/6yP9ilTMoNzUPlSRiPDEUrYlrKEtRiArBuedoAAP9z+T36/pSKY3PHxq\nSDDNBkBb7goeOIoxQUJoeW9F0QKBgQDWG8xCGFsoMJpbLwOvWR3i1tJNsUhYF8vW\n6/Z0F1FsOSFnQB3IHgcdCIM7Nx1Scs0JqDvW/5PKxX6MOgQzg3GBB0kOGeb30oMV\nToPCUoKaSQwUZ24DXIWwSWb/Xf2PTv2N5G80l39jbIFre8lwKBJT07zDFtyigQdn\nUgQJfhj5vQKBgC8azRYa3BNgfkP8Skt8hgefDLHOKmanUpSGs72R0EpsdFdeSk3W\ngXikSBa+L/9JwzKNsmCH7ZDF1b2ptSeEgEq4dAtBCGO2Fp9BqTIUeYhW2n827sr0\nXUUlbqLRFwI0sG6yRjgMIdg9AIoL+HHtFvQS1EjqJBkecidZqERRI8hRAoGBAJeU\nFHZSge6hAhY94ZD5OWRHi5l/QeVD64abhN5JR9ajV5eeV7c+MvEF/sokSbj+F1SX\n6s1aIQpz6RRjWmgRzYB4ZOr7wX1/ZlfmPveKrHWH82pakxMEJI1aWfW+V+1mEbGr\noGMOQhxkS/eJKmIhrF/2TfObstXFHTWzZbJGuG3NAoGAJEKes61O3AbU8za8HMvU\ngGMJ/trnbrBBcH4FGzcCs7Au0wNiGPpFqMf5tFpUarXJt8g4t9tdEGlsWsHOjUtT\nfWGCUOj6+/7vNJa9uiZrAEX0W5Ksc+Ak8t7jSZv4jKeDK8/wPtf0swE25KfsVwZx\n25xJAnFhDQnGANmDhoK0Bz4=\n-----END PRIVATE KEY-----\n", "client_email": "firebase-adminsdk-nu6oq@ringring-dev-98877.iam.gserviceaccount.com", "private_key_id": "ba6c4c7ae16c827dc6399edc07b617edbc7f3772", "client_id": "114764194304283669345", "token_uri": "https://accounts.google.com/o/oauth2/token", "project_id": "ringring-dev-98877", "type": "service_account", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs"}'
package main
import (
"context"
"fmt"
"log"
"net/http"
"os"
"golang.org/x/oauth2/google"
)
const fcmScope = "https://www.googleapis.com/auth/firebase.messaging"
func main() {
key := os.Getenv("TEST_KEY")
log.Printf("key=%q", key)
cfg, err := google.JWTConfigFromJSON([]byte(key), fcmScope)
if err != nil {
log.Fatal(err)
}
client := cfg.Client(context.Background())
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
resp, err := client.Get("https://fcm.googleapis.com")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer resp.Body.Close()
fmt.Fprintf(w, "SUCCESS")
})
log.Panic(http.ListenAndServe(":8080", nil))
}
[Unit]
Description=Test Unit
After=network-online.target
[Service]
Type=simple
EnvironmentFile=/opt/test/environment
ExecStart=/opt/test/test
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment