Browse Source

Add script to create binary

Neeraj Gupta 1 year ago
parent
commit
eaf73c2f3f
3 changed files with 43 additions and 4 deletions
  1. 2 1
      .gitignore
  2. 0 3
      main.go
  3. 41 0
      release.sh

+ 2 - 1
.gitignore

@@ -8,4 +8,5 @@ tmp/**
 scratch/**
 main
 config.yaml
-ente-cli.db
+ente-cli.db
+bin/**

+ 0 - 3
main.go

@@ -1,6 +1,3 @@
-/*
-Copyright © 2023 NAME HERE <EMAIL ADDRESS>
-*/
 package main
 
 import (

+ 41 - 0
release.sh

@@ -0,0 +1,41 @@
+#!/bin/bash
+
+# Create a "bin" directory if it doesn't exist
+mkdir -p bin
+
+# List of target operating systems
+OS_TARGETS=("windows" "linux" "darwin")
+
+# Loop through each OS target
+for OS in "${OS_TARGETS[@]}"
+do
+    # Set the GOOS environment variable for the current target OS
+    export GOOS="$OS"
+
+    # Set the output binary name to "ente-cli" for the current OS
+    BINARY_NAME="ente-cli"
+
+    # Add .exe extension for Windows
+    if [ "$OS" == "windows" ]; then
+        BINARY_NAME="ente-cli.exe"
+    fi
+
+        # Add .exe extension for Windows
+    if [ "$OS" == "darwin" ]; then
+        BINARY_NAME="ente-cli-mac"
+    fi
+
+
+
+    # Build the binary and place it in the "bin" directory
+    go build -o "bin/$BINARY_NAME" main.go
+
+    # Print a message indicating the build is complete for the current OS
+    echo "Built for $OS as bin/$BINARY_NAME"
+done
+
+# Clean up any environment variables
+unset GOOS
+
+# Print a message indicating the build process is complete
+echo "Build process completed for all platforms. Binaries are in the 'bin' directory."