From a5c7b4359722296eba8a52923a8133d1f4367cf0 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sun, 17 Aug 2025 14:01:34 +0800 Subject: [PATCH] Lint misc --- forged/internal/common/misc/deploy.go | 22 ---------------------- forged/internal/common/misc/net.go | 18 +++++++++++------- forged/internal/common/misc/panic.go | 19 ------------------- forged/internal/common/misc/trivial.go | 4 ++-- forged/internal/common/misc/unsafe.go | 4 ++-- diff --git a/forged/internal/common/misc/deploy.go b/forged/internal/common/misc/deploy.go deleted file mode 100644 index 3ee5f927ae510ffe69709009e95b3c0dfe23f769..0000000000000000000000000000000000000000 --- a/forged/internal/common/misc/deploy.go +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// SPDX-FileCopyrightText: Copyright (c) 2025 Runxi Yu - -package misc - -import ( - "io" - "io/fs" - "os" -) - -// DeployBinary copies the contents of a binary file to the target destination path. -// The destination file is created with executable permissions. -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/forged/internal/common/misc/net.go b/forged/internal/common/misc/net.go index 2c6b0a5a5bb4bc0bccead294c3bff0766beaa8af..967ea77452b33e29e2bcde7cf1d8aff3146fa0e0 100644 --- a/forged/internal/common/misc/net.go +++ b/forged/internal/common/misc/net.go @@ -1,20 +1,23 @@ package misc import ( + "context" "errors" "fmt" "net" "syscall" ) -func ListenUnixSocket(path string) (listener net.Listener, replaced bool, err error) { - listener, err = net.Listen("unix", path) +func ListenUnixSocket(ctx context.Context, path string) (listener net.Listener, replaced bool, err error) { + listenConfig := net.ListenConfig{} //exhaustruct:ignore + listener, err = listenConfig.Listen(ctx, "unix", path) if errors.Is(err, syscall.EADDRINUSE) { replaced = true - if unlinkErr := syscall.Unlink(path); unlinkErr != nil { + unlinkErr := syscall.Unlink(path) + if unlinkErr != nil { return listener, false, fmt.Errorf("remove existing socket %q: %w", path, unlinkErr) } - listener, err = net.Listen("unix", path) + listener, err = listenConfig.Listen(ctx, "unix", path) } if err != nil { return listener, replaced, fmt.Errorf("listen on unix socket %q: %w", path, err) @@ -22,14 +25,15 @@ } return listener, replaced, nil } -func Listen(net_, addr string) (listener net.Listener, err error) { +func Listen(ctx context.Context, net_, addr string) (listener net.Listener, err error) { if net_ == "unix" { - listener, _, err = ListenUnixSocket(addr) + listener, _, err = ListenUnixSocket(ctx, addr) if err != nil { return listener, fmt.Errorf("listen unix socket for web: %w", err) } } else { - listener, err = net.Listen(net_, addr) + listenConfig := net.ListenConfig{} //exhaustruct:ignore + listener, err = listenConfig.Listen(ctx, net_, addr) if err != nil { return listener, fmt.Errorf("listen %s for web: %w", net_, err) } diff --git a/forged/internal/common/misc/panic.go b/forged/internal/common/misc/panic.go deleted file mode 100644 index 34c49c50d8f6729c20f9ffd9e7060acdd8c17c1b..0000000000000000000000000000000000000000 --- a/forged/internal/common/misc/panic.go +++ /dev/null @@ -1,19 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// SPDX-FileCopyrightText: Copyright (c) 2025 Runxi Yu - -package misc - -// FirstOrPanic returns the value or panics if the error is non-nil. -func FirstOrPanic[T any](v T, err error) T { - if err != nil { - panic(err) - } - return v -} - -// NoneOrPanic panics if the provided error is non-nil. -func NoneOrPanic(err error) { - if err != nil { - panic(err) - } -} diff --git a/forged/internal/common/misc/trivial.go b/forged/internal/common/misc/trivial.go index e59c17e96364c93c4befb9ec33b8ea35d950e4c5..83901e0a79ce1ca7af091e5a451a8628835c7b75 100644 --- a/forged/internal/common/misc/trivial.go +++ b/forged/internal/common/misc/trivial.go @@ -28,13 +28,13 @@ return url.QueryEscape(s) } // Dereference dereferences a pointer. -func Dereference[T any](p *T) T { +func Dereference[T any](p *T) T { //nolint:ireturn return *p } // DereferenceOrZero dereferences a pointer. If the pointer is nil, the zero // value of its associated type is returned instead. -func DereferenceOrZero[T any](p *T) T { +func DereferenceOrZero[T any](p *T) T { //nolint:ireturn if p != nil { return *p } diff --git a/forged/internal/common/misc/unsafe.go b/forged/internal/common/misc/unsafe.go index 6c2192f9af4b393fab52fef65a518b183b24aab0..d827e7f41e305f5ba9f0ac1a8cd768295e94fcb3 100644 --- a/forged/internal/common/misc/unsafe.go +++ b/forged/internal/common/misc/unsafe.go @@ -9,12 +9,12 @@ // StringToBytes converts a string to a byte slice without copying the string. // Memory is borrowed from the string. // The resulting byte slice must not be modified in any form. func StringToBytes(s string) (bytes []byte) { - return unsafe.Slice(unsafe.StringData(s), len(s)) + return unsafe.Slice(unsafe.StringData(s), len(s)) //#nosec G103 } // BytesToString converts a byte slice to a string without copying the bytes. // Memory is borrowed from the byte slice. // The source byte slice must not be modified. func BytesToString(b []byte) string { - return unsafe.String(unsafe.SliceData(b), len(b)) + return unsafe.String(unsafe.SliceData(b), len(b)) //#nosec G103 } -- 2.48.1