From cedc40aee04bb8c4323096c44ff3c7b3157f9990 Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Fri, 5 Apr 2019 02:53:44 +0000 Subject: greedo -> kahless --- cmd/johaus/build.go | 4 +- cmd/within.website/build.go | 4 +- idp/build.go | 6 +-- internal/greedo/doc.go | 2 - internal/greedo/greedo.go | 85 ---------------------------------------- internal/greedo/greedo_test.go | 11 ------ internal/kahless/doc.go | 2 + internal/kahless/kahless.go | 85 ++++++++++++++++++++++++++++++++++++++++ internal/kahless/kahless_test.go | 11 ++++++ 9 files changed, 105 insertions(+), 105 deletions(-) delete mode 100644 internal/greedo/doc.go delete mode 100644 internal/greedo/greedo.go delete mode 100644 internal/greedo/greedo_test.go create mode 100644 internal/kahless/doc.go create mode 100644 internal/kahless/kahless.go create mode 100644 internal/kahless/kahless_test.go diff --git a/cmd/johaus/build.go b/cmd/johaus/build.go index 07e8489..34e09c0 100644 --- a/cmd/johaus/build.go +++ b/cmd/johaus/build.go @@ -8,7 +8,7 @@ import ( "log" "os" - "github.com/Xe/x/internal/greedo" + "github.com/Xe/x/internal/kahless" "github.com/Xe/x/internal/minipaas" "github.com/Xe/x/internal/yeet" ) @@ -27,7 +27,7 @@ func main() { defer fin.Close() fname := "johaus-" + yeet.DateTag + ".tar.gz" - pubURL, err := greedo.CopyFile(fname, fin) + pubURL, err := kahless.CopyFile(fname, fin) if err != nil { log.Fatal(err) } diff --git a/cmd/within.website/build.go b/cmd/within.website/build.go index d72d9f5..40ab861 100644 --- a/cmd/within.website/build.go +++ b/cmd/within.website/build.go @@ -8,7 +8,7 @@ import ( "log" "os" - "github.com/Xe/x/internal/greedo" + "github.com/Xe/x/internal/kahless" "github.com/Xe/x/internal/minipaas" "github.com/Xe/x/internal/yeet" ) @@ -27,7 +27,7 @@ func main() { defer fin.Close() fname := "within.website-" + yeet.DateTag + ".tar.gz" - pubURL, err := greedo.CopyFile(fname, fin) + pubURL, err := kahless.CopyFile(fname, fin) if err != nil { log.Fatal(err) } diff --git a/idp/build.go b/idp/build.go index 9d9d01d..7c8e1a2 100644 --- a/idp/build.go +++ b/idp/build.go @@ -8,7 +8,7 @@ import ( "log" "os" - "github.com/Xe/x/internal/greedo" + "github.com/Xe/x/internal/kahless" "github.com/Xe/x/internal/minipaas" "github.com/Xe/x/internal/yeet" ) @@ -18,7 +18,7 @@ func main() { defer cancel() env := append(os.Environ(), []string{"CGO_ENABLED=0", "GOOS=linux"}...) - yeet.ShouldWork(ctx, env, yeet.WD, "vgo", "build", "-o=web") + yeet.ShouldWork(ctx, env, yeet.WD, "go", "build", "-o=web") yeet.ShouldWork(ctx, env, yeet.WD, "appsluggr", "-web=web") fin, err := os.Open("slug.tar.gz") if err != nil { @@ -27,7 +27,7 @@ func main() { defer fin.Close() fname := "idp-" + yeet.DateTag + ".tar.gz" - pubURL, err := greedo.CopyFile(fname, fin) + pubURL, err := kahless.CopyFile(fname, fin) if err != nil { log.Fatal(err) } diff --git a/internal/greedo/doc.go b/internal/greedo/doc.go deleted file mode 100644 index 5684040..0000000 --- a/internal/greedo/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package greedo is a set of functions to copy files to https://xena.greedo.xeserv.us/files. -package greedo diff --git a/internal/greedo/greedo.go b/internal/greedo/greedo.go deleted file mode 100644 index 75e1a3e..0000000 --- a/internal/greedo/greedo.go +++ /dev/null @@ -1,85 +0,0 @@ -package greedo - -import ( - "bytes" - "io" - "io/ioutil" - "net" - "os" - "path/filepath" - - "github.com/tmc/scp" - "golang.org/x/crypto/ssh" - "golang.org/x/crypto/ssh/agent" -) - -func getAgent() (agent.Agent, error) { - agentConn, err := net.Dial("unix", os.Getenv("SSH_AUTH_SOCK")) - return agent.NewClient(agentConn), err -} - -const ( - greedoAddr = `greedo.xeserv.us:22` - greedoUser = `xena` -) - -// Dial opens a SSH client to greedo. -func Dial() (*ssh.Client, error) { - agent, err := getAgent() - if err != nil { - return nil, err - } - - client, err := ssh.Dial("tcp", greedoAddr, &ssh.ClientConfig{ - User: greedoUser, - Auth: []ssh.AuthMethod{ - ssh.PublicKeysCallback(agent.Signers), - }, - HostKeyCallback: ssh.InsecureIgnoreHostKey(), - }) - if err != nil { - return nil, err - } - - return client, nil -} - -// Copy copies a local file reader to the remote destination path. This copies the enitre contents of contents into ram. Don't use this function if doing so is a bad idea. Only works on files less than 2 GB. -func Copy(mode os.FileMode, fileName string, contents io.Reader, destinationPath string) error { - data, err := ioutil.ReadAll(contents) - if err != nil { - return err - } - - client, err := Dial() - if err != nil { - return err - } - - session, err := client.NewSession() - if err != nil { - return err - } - - err = scp.Copy(int64(len(data)), mode, fileName, bytes.NewBuffer(data), destinationPath, session) - if err != nil { - return err - } - - return nil -} - -// CopyFile copies a file to Greedo's public files folder and returns its public-facing URL. -func CopyFile(fileName string, contents io.Reader) (string, error) { - err := Copy(0644, fileName, contents, filepath.Join("public_html", "files", "slugs", fileName)) - if err != nil { - return "", err - } - - return WebURL(fileName), nil -} - -// WebURL constructs a public-facing URL for a given resource by fragment. -func WebURL(fragment string) string { - return "https://xena.greedo.xeserv.us/files/" + fragment -} diff --git a/internal/greedo/greedo_test.go b/internal/greedo/greedo_test.go deleted file mode 100644 index 4e1f857..0000000 --- a/internal/greedo/greedo_test.go +++ /dev/null @@ -1,11 +0,0 @@ -package greedo - -import "testing" - -func TestDial(t *testing.T) { - cli, err := Dial() - if err != nil { - t.Fatal(err) - } - cli.Close() -} diff --git a/internal/kahless/doc.go b/internal/kahless/doc.go new file mode 100644 index 0000000..1fa1134 --- /dev/null +++ b/internal/kahless/doc.go @@ -0,0 +1,2 @@ +// Package kahless is a set of functions to copy files to https://xena.greedo.xeserv.us/files. +package kahless diff --git a/internal/kahless/kahless.go b/internal/kahless/kahless.go new file mode 100644 index 0000000..7fc8b0c --- /dev/null +++ b/internal/kahless/kahless.go @@ -0,0 +1,85 @@ +package kahless + +import ( + "bytes" + "io" + "io/ioutil" + "net" + "os" + "path/filepath" + + "github.com/tmc/scp" + "golang.org/x/crypto/ssh" + "golang.org/x/crypto/ssh/agent" +) + +func getAgent() (agent.Agent, error) { + agentConn, err := net.Dial("unix", os.Getenv("SSH_AUTH_SOCK")) + return agent.NewClient(agentConn), err +} + +const ( + greedoAddr = `kahless.wg.akua:22` + greedoUser = `xena` +) + +// Dial opens a SSH client to greedo. +func Dial() (*ssh.Client, error) { + agent, err := getAgent() + if err != nil { + return nil, err + } + + client, err := ssh.Dial("tcp", greedoAddr, &ssh.ClientConfig{ + User: greedoUser, + Auth: []ssh.AuthMethod{ + ssh.PublicKeysCallback(agent.Signers), + }, + HostKeyCallback: ssh.InsecureIgnoreHostKey(), + }) + if err != nil { + return nil, err + } + + return client, nil +} + +// Copy copies a local file reader to the remote destination path. This copies the enitre contents of contents into ram. Don't use this function if doing so is a bad idea. Only works on files less than 2 GB. +func Copy(mode os.FileMode, fileName string, contents io.Reader, destinationPath string) error { + data, err := ioutil.ReadAll(contents) + if err != nil { + return err + } + + client, err := Dial() + if err != nil { + return err + } + + session, err := client.NewSession() + if err != nil { + return err + } + + err = scp.Copy(int64(len(data)), mode, fileName, bytes.NewBuffer(data), destinationPath, session) + if err != nil { + return err + } + + return nil +} + +// CopyFile copies a file to Greedo's public files folder and returns its public-facing URL. +func CopyFile(fileName string, contents io.Reader) (string, error) { + err := Copy(0644, fileName, contents, filepath.Join("public_html", "files", "slugs", fileName)) + if err != nil { + return "", err + } + + return WebURL(fileName), nil +} + +// WebURL constructs a public-facing URL for a given resource by fragment. +func WebURL(fragment string) string { + return "https://xena.greedo.xeserv.us/files/slugs/" + fragment +} diff --git a/internal/kahless/kahless_test.go b/internal/kahless/kahless_test.go new file mode 100644 index 0000000..ecd675b --- /dev/null +++ b/internal/kahless/kahless_test.go @@ -0,0 +1,11 @@ +package kahless + +import "testing" + +func TestDial(t *testing.T) { + cli, err := Dial() + if err != nil { + t.Fatal(err) + } + cli.Close() +} -- cgit v1.2.3