mirror of
https://github.com/siderolabs/talos.git
synced 2025-10-03 19:51:16 +02:00
This replaces the entrypoint.sh shell script with a go binary. Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
31 lines
887 B
Go
31 lines
887 B
Go
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
package pkg
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/talos-systems/talos/pkg/cmd"
|
|
)
|
|
|
|
// Loattach attaches a loopback device by inoking the `losetup` command.
|
|
func Loattach(img string) (dev string, err error) {
|
|
if dev, err = cmd.Run("losetup", "--find", "--partscan", "--nooverlap", "--show", img); err != nil {
|
|
return "", fmt.Errorf("failed to setup loopback device: %w", err)
|
|
}
|
|
|
|
return strings.TrimSuffix(dev, "\n"), nil
|
|
}
|
|
|
|
// Lodetach detaches a loopback device by inoking the `losetup` command.
|
|
func Lodetach(img string) (err error) {
|
|
if _, err = cmd.Run("losetup", "-d", img); err != nil {
|
|
return fmt.Errorf("failed to detach loopback device: %w", err)
|
|
}
|
|
|
|
return nil
|
|
}
|