From 0f638ff11f56cf29d137f0f2ac21734430af2e93 Mon Sep 17 00:00:00 2001 From: alvarorichard Date: Sat, 23 Nov 2024 22:53:44 -0300 Subject: [PATCH] update: scripts builds --- build/buildlinux.sh | 22 ++++++++++---- build/buildmacos.sh | 67 ++++++++++++++++++++++++------------------- build/buildwindows.sh | 23 +++++++++++---- 3 files changed, 71 insertions(+), 41 deletions(-) diff --git a/build/buildlinux.sh b/build/buildlinux.sh index eb10987..747169f 100644 --- a/build/buildlinux.sh +++ b/build/buildlinux.sh @@ -1,3 +1,6 @@ + + + #!/bin/bash # Exit immediately if a command exits with a non-zero status @@ -5,9 +8,11 @@ set -e # Variables OUTPUT_DIR="../build" # Adjusted to place the binary in the build directory -BINARY_NAME="goanime" +BINARY_NAME="goanime-linux" BINARY_PATH="$OUTPUT_DIR/$BINARY_NAME" -CHECKSUM_FILE="$OUTPUT_DIR/$BINARY_NAME.sha256" +TARBALL_NAME="$BINARY_NAME.tar.gz" +TARBALL_PATH="$OUTPUT_DIR/$TARBALL_NAME" +CHECKSUM_FILE="$TARBALL_PATH.sha256" MAIN_PACKAGE="../cmd/goanime" # Create the output directory if it doesn't exist @@ -27,13 +32,18 @@ else echo "UPX not found. Skipping compression." fi -# Generate SHA256 checksum -echo "Generating SHA256 checksum..." +# Create tarball +echo "Creating tarball..." +tar -czf "$TARBALL_PATH" -C "$OUTPUT_DIR" "$BINARY_NAME" +echo "Tarball created: $TARBALL_PATH" + +# Generate SHA256 checksum for the tarball +echo "Generating SHA256 checksum for the tarball..." # Check if sha256sum exists, else use shasum if command -v sha256sum >/dev/null 2>&1; then - sha256sum "$BINARY_PATH" > "$CHECKSUM_FILE" + sha256sum "$TARBALL_PATH" > "$CHECKSUM_FILE" elif command -v shasum >/dev/null 2>&1; then - shasum -a 256 "$BINARY_PATH" > "$CHECKSUM_FILE" + shasum -a 256 "$TARBALL_PATH" > "$CHECKSUM_FILE" else echo "Neither sha256sum nor shasum is available. Cannot generate checksum." exit 1 diff --git a/build/buildmacos.sh b/build/buildmacos.sh index 3d06a0a..0d51aee 100755 --- a/build/buildmacos.sh +++ b/build/buildmacos.sh @@ -1,44 +1,53 @@ + + + + #!/bin/bash -# Sai imediatamente se um comando falhar +# Exit immediately if a command exits with a non-zero status set -e -# Variáveis -OUTPUT_DIR="../build" -BINARY_NAME="goanime" +# Variables +OUTPUT_DIR="../build" # Adjusted to place the binary in the build directory +BINARY_NAME="goanime-apple-darwin" BINARY_PATH="$OUTPUT_DIR/$BINARY_NAME" -CHECKSUM_FILE="$OUTPUT_DIR/$BINARY_NAME.sha256" +TARBALL_NAME="$BINARY_NAME.tar.gz" +TARBALL_PATH="$OUTPUT_DIR/$TARBALL_NAME" +CHECKSUM_FILE="$TARBALL_PATH.sha256" MAIN_PACKAGE="../cmd/goanime" -# Detecta a arquitetura -ARCH=$(uname -m) -if [ "$ARCH" == "x86_64" ]; then - GOARCH=amd64 -elif [ "$ARCH" == "arm64" ]; then - GOARCH=arm64 -else - echo "Arquitetura não suportada: $ARCH" - exit 1 -fi - -# Cria o diretório de saída se não existir +# Create the output directory if it doesn't exist mkdir -p "$OUTPUT_DIR" -echo "Compilando o binário goanime para macOS ($GOARCH)..." -CGO_ENABLED=0 GOOS=darwin GOARCH=$GOARCH go build -o "$BINARY_PATH" -ldflags="-s -w" -trimpath "$MAIN_PACKAGE" +echo "Building the goanime binary for macOS..." +CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o "$BINARY_PATH" -ldflags="-s -w" -trimpath "$MAIN_PACKAGE" + +echo "Build completed: $BINARY_PATH" -echo "Compilação concluída: $BINARY_PATH" +# Check if UPX is installed +if command -v upx >/dev/null 2>&1; then + echo "Compressing the binary with UPX..." + upx --best --ultra-brute "$BINARY_PATH" + echo "Compression completed." +else + echo "UPX not found. Skipping compression." +fi -# Gera o checksum SHA256 -echo "Gerando checksum SHA256..." -if command -v sha256sum >/dev/null 2>&1; then - sha256sum "$BINARY_PATH" > "$CHECKSUM_FILE" -elif command -v shasum >/dev/null 2>&1; then - shasum -a 256 "$BINARY_PATH" > "$CHECKSUM_FILE" +# Create tarball +echo "Creating tarball..." +tar -czf "$TARBALL_PATH" -C "$OUTPUT_DIR" "$BINARY_NAME" +echo "Tarball created: $TARBALL_PATH" + +# Generate SHA256 checksum for the tarball +echo "Generating SHA256 checksum for the tarball..." +if command -v shasum >/dev/null 2>&1; then + shasum -a 256 "$TARBALL_PATH" > "$CHECKSUM_FILE" +elif command -v openssl >/dev/null 2>&1; then + openssl dgst -sha256 "$TARBALL_PATH" | awk '{print $2}' > "$CHECKSUM_FILE" else - echo "Nem sha256sum nem shasum estão disponíveis. Não é possível gerar o checksum." + echo "Neither shasum nor openssl is available. Cannot generate checksum." exit 1 fi -echo "Checksum gerado: $CHECKSUM_FILE" +echo "Checksum generated: $CHECKSUM_FILE" -echo "Script de build concluído com sucesso." +echo "Build script completed successfully." diff --git a/build/buildwindows.sh b/build/buildwindows.sh index d7efa6e..78c79ec 100755 --- a/build/buildwindows.sh +++ b/build/buildwindows.sh @@ -1,3 +1,5 @@ + + #!/bin/bash # Sai imediatamente se um comando falhar @@ -7,7 +9,9 @@ set -e OUTPUT_DIR="../build" # Diretório de saída para o binário e checksum BINARY_NAME="goanime.exe" # Nome do binário para Windows BINARY_PATH="$OUTPUT_DIR/$BINARY_NAME" -CHECKSUM_FILE="$OUTPUT_DIR/$BINARY_NAME.sha256" +ZIP_NAME="goanime-windows.zip" +ZIP_PATH="$OUTPUT_DIR/$ZIP_NAME" +CHECKSUM_FILE="$ZIP_PATH.sha256" MAIN_PACKAGE="../cmd/goanime" # Detecta a arquitetura @@ -38,14 +42,21 @@ else echo "UPX não encontrado. Pulando compressão." fi -# Gera o checksum SHA256 -echo "Gerando checksum SHA256..." +# Cria arquivo ZIP +echo "Criando arquivo ZIP..." +zip -j "$ZIP_PATH" "$BINARY_PATH" +echo "Arquivo ZIP criado: $ZIP_PATH" + +# Gera o checksum SHA256 para o arquivo ZIP +echo "Gerando checksum SHA256 para o arquivo ZIP..." if command -v sha256sum >/dev/null 2>&1; then - sha256sum "$BINARY_PATH" > "$CHECKSUM_FILE" + sha256sum "$ZIP_PATH" > "$CHECKSUM_FILE" elif command -v shasum >/dev/null 2>&1; then - shasum -a 256 "$BINARY_PATH" > "$CHECKSUM_FILE" + shasum -a 256 "$ZIP_PATH" > "$CHECKSUM_FILE" +elif command -v openssl >/dev/null 2>&1; then + openssl dgst -sha256 "$ZIP_PATH" | awk '{print $2}' > "$CHECKSUM_FILE" else - echo "Nem sha256sum nem shasum estão disponíveis. Não é possível gerar o checksum." + echo "Nem sha256sum, shasum ou openssl estão disponíveis. Não é possível gerar o checksum." exit 1 fi echo "Checksum gerado: $CHECKSUM_FILE"