aboutsummaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-04-06 00:42:11 +0800
committerRunxi Yu <me@runxiyu.org>2025-04-06 00:42:26 +0800
commitf5ebe96649a30658bb8a8bee4cb2ac1b45823b28 (patch)
tree980c5fb915da731335baa30860d2e660bcffa407 /internal
parentLMTP: Fix sed mistake (diff)
downloadforge-f5ebe96649a30658bb8a8bee4cb2ac1b45823b28.tar.gz
forge-f5ebe96649a30658bb8a8bee4cb2ac1b45823b28.tar.zst
forge-f5ebe96649a30658bb8a8bee4cb2ac1b45823b28.zip
Hooks, git2d: Simplify deployment logicv0.1.27
Diffstat (limited to 'internal')
-rw-r--r--internal/misc/deploy.go17
-rw-r--r--internal/misc/misc.go7
-rw-r--r--internal/misc/panic.go14
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)
+ }
+}