diff options
Diffstat (limited to 'internal')
-rw-r--r-- | internal/misc/deploy.go | 17 | ||||
-rw-r--r-- | internal/misc/misc.go | 7 | ||||
-rw-r--r-- | internal/misc/panic.go | 14 |
3 files changed, 31 insertions, 7 deletions
diff --git a/internal/misc/deploy.go b/internal/misc/deploy.go new file mode 100644 index 0000000..80a1dec --- /dev/null +++ b/internal/misc/deploy.go @@ -0,0 +1,17 @@ +package misc + +import ( + "io" + "io/fs" + "os" +) + +func DeployBinary(src fs.File, dst string) (err error) { + var dstFile *os.File + if dstFile, err = os.OpenFile(dst, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0o755); err != nil { + return err + } + defer dstFile.Close() + _, err = io.Copy(dstFile, src) + return err +} diff --git a/internal/misc/misc.go b/internal/misc/misc.go index 87f7f70..3ad0211 100644 --- a/internal/misc/misc.go +++ b/internal/misc/misc.go @@ -5,13 +5,6 @@ package misc import "strings" -func FirstOrPanic[T any](v T, err error) T { - if err != nil { - panic(err) - } - return v -} - // sliceContainsNewlines returns true if and only if the given slice contains // one or more strings that contains newlines. func SliceContainsNewlines(s []string) bool { diff --git a/internal/misc/panic.go b/internal/misc/panic.go new file mode 100644 index 0000000..2400aed --- /dev/null +++ b/internal/misc/panic.go @@ -0,0 +1,14 @@ +package misc + +func FirstOrPanic[T any](v T, err error) T { + if err != nil { + panic(err) + } + return v +} + +func NoneOrPanic(err error) { + if err != nil { + panic(err) + } +} |