Compare commits
5 commits
dfd5cee2fc
...
29e8665223
Author | SHA1 | Date | |
---|---|---|---|
|
29e8665223 | ||
|
6bbd36c9ea | ||
|
5a57ab02e8 | ||
|
5636e187aa | ||
|
4a28684c48 |
35
Makefile
35
Makefile
|
@ -1,52 +1,43 @@
|
||||||
# Define variables
|
# Define variables
|
||||||
NAME = lon-tool
|
NAME = lon-tool
|
||||||
GOFLAGS ?= -ldflags="-s -w"
|
|
||||||
SRC ?= main.go
|
SRC ?= main.go
|
||||||
BIN_DIR ?= ./bin
|
BIN_DIR ?= ./bin
|
||||||
|
GIT_VERSION := $(shell git describe --abbrev=4 --dirty --always --tags)
|
||||||
# macOS settings
|
GOFLAGS ?= -ldflags="-s -w -X lon-tool/cmd.version=$(GIT_VERSION)"
|
||||||
MACOS_BIN = $(BIN_DIR)/$(NAME)_mac_amd64
|
WINDOWS_GOFLAGS ?= -ldflags="-extldflags=-static -s -w -X lon-tool/cmd.version=$(GIT_VERSION)"
|
||||||
MACOS_CC = x86_64-apple-darwin23-gcc-14
|
|
||||||
MACOS_CXX = x86_64-apple-darwin23-g++-14
|
|
||||||
|
|
||||||
# Windows settings
|
# Windows settings
|
||||||
WINDOWS_BIN = $(BIN_DIR)/$(NAME)_win_amd64.exe
|
WINDOWS_BIN = $(BIN_DIR)/$(NAME)_win_amd64.exe
|
||||||
WINDOWS_CC = x86_64-w64-mingw32-gcc
|
WINDOWS_CC = x86_64-w64-mingw32-gcc
|
||||||
WINDOWS_CXX = x86_64-w64-mingw32-g++
|
WINDOWS_CXX = x86_64-w64-mingw32-g++
|
||||||
WINDOWS_PKG_CONFIG_PATH = /usr/local/x86_64-w64-mingw32/lib/pkgconfig
|
WINDOWS_PKG_CONFIG_PATH = /usr/x86_64-w64-mingw32/lib/pkgconfig
|
||||||
WINDOWS_CGO_CFLAGS = -I/usr/local/x86_64-w64-mingw32/include
|
WINDOWS_CGO_CFLAGS = -I/usr/x86_64-w64-mingw32/include
|
||||||
WINDOWS_CGO_LDFLAGS = -L/usr/local/x86_64-w64-mingw32/lib
|
WINDOWS_CGO_LDFLAGS = -L/usr/x86_64-w64-mingw32/lib
|
||||||
|
|
||||||
# Linux settings
|
# Linux settings
|
||||||
LINUX_BIN = $(BIN_DIR)/$(NAME)_lin_amd64
|
LINUX_BIN = $(BIN_DIR)/$(NAME)_lin_amd64
|
||||||
LINUX_CC = x86_64-linux-gnu-gcc
|
LINUX_CC = x86_64-linux-gnu-gcc
|
||||||
LINUX_CXX = x86_64-linux-gnu-g++
|
LINUX_CXX = x86_64-linux-gnu-g++
|
||||||
LINUX_PKG_CONFIG_PATH = /usr/local/x86_64-linux-gnu/lib/pkgconfig
|
LINUX_PKG_CONFIG_PATH = /usr/lib/pkgconfig
|
||||||
LINUX_CGO_CFLAGS = -I/usr/local/x86_64-linux-gnu/include
|
LINUX_CGO_CFLAGS = -I/usr/include
|
||||||
LINUX_CGO_LDFLAGS = -L/usr/local/x86_64-linux-gnu/lib
|
LINUX_CGO_LDFLAGS = -L/usr/lib
|
||||||
|
|
||||||
# Targets
|
# Targets
|
||||||
all: macos windows linux
|
all: windows linux
|
||||||
|
|
||||||
macos:
|
|
||||||
@export CGO_ENABLED=1 GOARCH=amd64 GOOS=darwin CC=$(MACOS_CC) CXX=$(MACOS_CXX) && \
|
|
||||||
echo "Building macos bin" && \
|
|
||||||
go build $(GOFLAGS) -o $(MACOS_BIN) $(SRC) && \
|
|
||||||
echo "- saved to $(MACOS_BIN)"
|
|
||||||
|
|
||||||
windows:
|
windows:
|
||||||
|
@echo "Building windows bin"
|
||||||
@export CGO_ENABLED=1 GOARCH=amd64 GOOS=windows CC=$(WINDOWS_CC) CXX=$(WINDOWS_CXX) \
|
@export CGO_ENABLED=1 GOARCH=amd64 GOOS=windows CC=$(WINDOWS_CC) CXX=$(WINDOWS_CXX) \
|
||||||
PKG_CONFIG_PATH=$(WINDOWS_PKG_CONFIG_PATH) CGO_CFLAGS=$(WINDOWS_CGO_CFLAGS) \
|
PKG_CONFIG_PATH=$(WINDOWS_PKG_CONFIG_PATH) CGO_CFLAGS=$(WINDOWS_CGO_CFLAGS) \
|
||||||
CGO_LDFLAGS=$(WINDOWS_CGO_LDFLAGS) && \
|
CGO_LDFLAGS=$(WINDOWS_CGO_LDFLAGS) && \
|
||||||
echo "Building windows bin" && \
|
go build $(WINDOWS_GOFLAGS) -o $(WINDOWS_BIN) $(SRC) && \
|
||||||
go build $(GOFLAGS) -o $(WINDOWS_BIN) -ldflags="-extldflags=-static" $(SRC) && \
|
|
||||||
echo "- saved to $(WINDOWS_BIN)"
|
echo "- saved to $(WINDOWS_BIN)"
|
||||||
|
|
||||||
linux:
|
linux:
|
||||||
|
@echo "Building linux bin"
|
||||||
@export CGO_ENABLED=1 GOARCH=amd64 GOOS=linux CC=$(LINUX_CC) CXX=$(LINUX_CXX) \
|
@export CGO_ENABLED=1 GOARCH=amd64 GOOS=linux CC=$(LINUX_CC) CXX=$(LINUX_CXX) \
|
||||||
PKG_CONFIG_PATH=$(LINUX_PKG_CONFIG_PATH) CGO_CFLAGS=$(LINUX_CGO_CFLAGS) \
|
PKG_CONFIG_PATH=$(LINUX_PKG_CONFIG_PATH) CGO_CFLAGS=$(LINUX_CGO_CFLAGS) \
|
||||||
CGO_LDFLAGS=$(LINUX_CGO_LDFLAGS) && \
|
CGO_LDFLAGS=$(LINUX_CGO_LDFLAGS) && \
|
||||||
echo "Building linux bin" && \
|
|
||||||
go build $(GOFLAGS) -o $(LINUX_BIN) $(SRC) && \
|
go build $(GOFLAGS) -o $(LINUX_BIN) $(SRC) && \
|
||||||
echo "- saved to $(LINUX_BIN)"
|
echo "- saved to $(LINUX_BIN)"
|
||||||
|
|
||||||
|
|
|
@ -353,7 +353,6 @@ var deployCmd = &cobra.Command{
|
||||||
}
|
}
|
||||||
|
|
||||||
adbd.RunCommand("mkdir /tmp/uefi-install")
|
adbd.RunCommand("mkdir /tmp/uefi-install")
|
||||||
uploadBar, _ := pbar.WithTotal(2).WithTitle("Uploading uefi files").Start()
|
|
||||||
|
|
||||||
bootshim, err := utils.Files.UEFIBootshim.Get(*pbar.WithTitle("Downloading uefi bootshim"))
|
bootshim, err := utils.Files.UEFIBootshim.Get(*pbar.WithTitle("Downloading uefi bootshim"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -367,16 +366,13 @@ var deployCmd = &cobra.Command{
|
||||||
|
|
||||||
conn, err := adbd.OpenWrite(pterm.Sprintf("/tmp/uefi-install/%s", utils.Files.UEFIBootshim.Name), fs.FileMode(0777), adb.MtimeOfClose)
|
conn, err := adbd.OpenWrite(pterm.Sprintf("/tmp/uefi-install/%s", utils.Files.UEFIBootshim.Name), fs.FileMode(0777), adb.MtimeOfClose)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
uploadBar.Stop()
|
|
||||||
logger.Error("Failed to send uefi bootshim", logger.Args("Error", err))
|
logger.Error("Failed to send uefi bootshim", logger.Args("Error", err))
|
||||||
}
|
}
|
||||||
_, err = conn.Write(bootshim)
|
_, err = conn.Write(bootshim)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
uploadBar.Stop()
|
|
||||||
logger.Error("Failed to send uefi bootshim", logger.Args("Error", err))
|
logger.Error("Failed to send uefi bootshim", logger.Args("Error", err))
|
||||||
}
|
}
|
||||||
conn.Close()
|
conn.Close()
|
||||||
uploadBar.Add(1)
|
|
||||||
|
|
||||||
payload, err := utils.Files.UEFIPayload.Get(*pbar.WithTitle("Downloading uefi payload"))
|
payload, err := utils.Files.UEFIPayload.Get(*pbar.WithTitle("Downloading uefi payload"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -389,16 +385,13 @@ var deployCmd = &cobra.Command{
|
||||||
}
|
}
|
||||||
conn, err = adbd.OpenWrite(pterm.Sprintf("/tmp/uefi-install/%s", utils.Files.UEFIPayload.Name), fs.FileMode(0777), adb.MtimeOfClose)
|
conn, err = adbd.OpenWrite(pterm.Sprintf("/tmp/uefi-install/%s", utils.Files.UEFIPayload.Name), fs.FileMode(0777), adb.MtimeOfClose)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
uploadBar.Stop()
|
|
||||||
logger.Error("Failed to send uefi payload", logger.Args("Error", err))
|
logger.Error("Failed to send uefi payload", logger.Args("Error", err))
|
||||||
}
|
}
|
||||||
_, err = conn.Write(payload)
|
_, err = conn.Write(payload)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
uploadBar.Stop()
|
|
||||||
logger.Error("Failed to send uefi payload", logger.Args("Error", err))
|
logger.Error("Failed to send uefi payload", logger.Args("Error", err))
|
||||||
}
|
}
|
||||||
conn.Close()
|
conn.Close()
|
||||||
uploadBar.Add(1)
|
|
||||||
|
|
||||||
uefiSpinner, _ := spinner.Start("Patching UEFI")
|
uefiSpinner, _ := spinner.Start("Patching UEFI")
|
||||||
out, err = adbd.RunCommand("uefi-patch > /dev/null 2>&1; echo $?")
|
out, err = adbd.RunCommand("uefi-patch > /dev/null 2>&1; echo $?")
|
||||||
|
|
16
cmd/root.go
16
cmd/root.go
|
@ -24,6 +24,7 @@ import (
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var version string
|
||||||
var logger pterm.Logger
|
var logger pterm.Logger
|
||||||
var pbar pterm.ProgressbarPrinter
|
var pbar pterm.ProgressbarPrinter
|
||||||
var spinner pterm.SpinnerPrinter
|
var spinner pterm.SpinnerPrinter
|
||||||
|
@ -31,9 +32,10 @@ var spinner pterm.SpinnerPrinter
|
||||||
var verbose bool
|
var verbose bool
|
||||||
|
|
||||||
var rootCmd = &cobra.Command{
|
var rootCmd = &cobra.Command{
|
||||||
Use: "lon-tool",
|
Use: "lon-tool",
|
||||||
Short: "A tool for installing linux on nabu and managing linux images",
|
Short: "A tool for installing linux on nabu and managing linux images",
|
||||||
Long: "A tool for installing linux on nabu and managing linux images",
|
Long: "A tool for installing linux on nabu and managing linux images",
|
||||||
|
Version: version,
|
||||||
PersistentPreRun: func(cmd *cobra.Command, args []string) {
|
PersistentPreRun: func(cmd *cobra.Command, args []string) {
|
||||||
if verbose {
|
if verbose {
|
||||||
logger = *pterm.DefaultLogger.WithLevel(pterm.LogLevelDebug).WithTime(false)
|
logger = *pterm.DefaultLogger.WithLevel(pterm.LogLevelDebug).WithTime(false)
|
||||||
|
@ -47,14 +49,14 @@ var rootCmd = &cobra.Command{
|
||||||
WithShowElapsedTime(false).
|
WithShowElapsedTime(false).
|
||||||
WithRemoveWhenDone(false).
|
WithRemoveWhenDone(false).
|
||||||
WithShowCount(false).
|
WithShowCount(false).
|
||||||
WithBarFiller(pbarFillStyle.Sprint("—")).
|
WithBarFiller(pbarFillStyle.Sprint("─")).
|
||||||
WithLastCharacter("—").
|
WithLastCharacter("─").
|
||||||
WithBarCharacter("—").
|
WithBarCharacter("─").
|
||||||
WithTitleStyle(pbarTitleStyle).
|
WithTitleStyle(pbarTitleStyle).
|
||||||
WithBarStyle(pbarStyle)
|
WithBarStyle(pbarStyle)
|
||||||
spinner = *pterm.DefaultSpinner.
|
spinner = *pterm.DefaultSpinner.
|
||||||
WithRemoveWhenDone(true).
|
WithRemoveWhenDone(true).
|
||||||
WithSequence("-", "\\", "|", "/").
|
WithSequence("─", "\\", "|", "/").
|
||||||
WithStyle(pbarTitleStyle).
|
WithStyle(pbarTitleStyle).
|
||||||
WithDelay(time.Millisecond * 100)
|
WithDelay(time.Millisecond * 100)
|
||||||
},
|
},
|
||||||
|
|
Reference in a new issue