mirror of
https://github.com/davidallendj/configurator.git
synced 2025-12-20 11:37:00 -07:00
63 lines
1.4 KiB
Go
63 lines
1.4 KiB
Go
package util
|
|
|
|
import (
|
|
"bytes"
|
|
"crypto/tls"
|
|
"fmt"
|
|
"io"
|
|
"net/http"
|
|
"os"
|
|
"os/exec"
|
|
"strings"
|
|
)
|
|
|
|
func PathExists(path string) (bool, error) {
|
|
_, err := os.Stat(path)
|
|
if err == nil {
|
|
return true, nil
|
|
}
|
|
if os.IsNotExist(err) {
|
|
return false, nil
|
|
}
|
|
return false, err
|
|
}
|
|
|
|
func MakeRequest(url string, httpMethod string, body []byte, headers map[string]string) (*http.Response, []byte, error) {
|
|
http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
|
|
req, err := http.NewRequest(httpMethod, url, bytes.NewBuffer(body))
|
|
if err != nil {
|
|
return nil, nil, fmt.Errorf("could not create new HTTP request: %v", err)
|
|
}
|
|
req.Header.Add("User-Agent", "configurator")
|
|
for k, v := range headers {
|
|
req.Header.Add(k, v)
|
|
}
|
|
res, err := http.DefaultClient.Do(req)
|
|
if err != nil {
|
|
return nil, nil, fmt.Errorf("could not make request: %v", err)
|
|
}
|
|
b, err := io.ReadAll(res.Body)
|
|
res.Body.Close()
|
|
if err != nil {
|
|
return nil, nil, fmt.Errorf("could not read response body: %v", err)
|
|
}
|
|
return res, b, err
|
|
}
|
|
|
|
func ConvertMapOutput(m map[string][]byte) map[string]string {
|
|
n := make(map[string]string, len(m))
|
|
for k, v := range m {
|
|
n[k] = string(v)
|
|
}
|
|
return n
|
|
}
|
|
|
|
func GitCommit() string {
|
|
c := exec.Command("git", "rev-parse", "HEAD")
|
|
stdout, err := c.Output()
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
|
|
return strings.TrimRight(string(stdout), "\n")
|
|
}
|