1 Commits
v0.3 ... v0.3.1

Author SHA1 Message Date
2fe228858f Update build process and version embedding. 2025-07-30 08:17:15 +02:00
4 changed files with 27 additions and 5 deletions

1
.gitignore vendored
View File

@@ -2,6 +2,7 @@
**/go.sum **/go.sum
# Ignore the binary output # Ignore the binary output
lab-ca* lab-ca*
build
# Ignore any certificate files # Ignore any certificate files
*.pem *.pem
# Ignore CA configuration and certificate definitions. # Ignore CA configuration and certificate definitions.

View File

@@ -6,4 +6,17 @@ if [ $? -eq 0 ]; then
else else
VERSION="dev" VERSION="dev"
fi fi
go build -ldflags "-X main.Version=$VERSION" -o lab-ca
if echo $VERSION | grep -q 'dirty$'; then
echo "Building in development mode, output directory is set to 'build'."
OUTPUT_DIR=build
# Make sure the output directory exists, create it if it is not
mkdir -p $OUTPUT_DIR
else
echo "Building with version: $VERSION"
OUTPUT_DIR=$GOHOME/bin
fi
# Build the Lab CA binary with version information
go build -ldflags "-X main.Version=$VERSION" -o $OUTPUT_DIR/lab-ca

14
main.go
View File

@@ -7,7 +7,7 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
) )
var Version = "dev" var Version = ""
// Global flags available to all commands // Global flags available to all commands
var overwrite bool var overwrite bool
@@ -225,7 +225,7 @@ func main() {
Use: "version", Use: "version",
Short: "Show version information", Short: "Show version information",
Run: func(cmd *cobra.Command, args []string) { Run: func(cmd *cobra.Command, args []string) {
fmt.Printf("lab-ca version: %s\n", Version) fmt.Printf("lab-ca version: %s\n", getVersionDescription())
}, },
} }
rootCmd.AddCommand(versionCmd) rootCmd.AddCommand(versionCmd)
@@ -235,15 +235,23 @@ func main() {
} }
} }
func getVersionDescription() string {
if Version == "" {
return "no version information was compiled in"
}
return Version
}
func printMainHelp() { func printMainHelp() {
fmt.Printf("lab-ca - Certificate Authority Utility\n") fmt.Printf("lab-ca - Certificate Authority Utility\n")
fmt.Printf("Version: %s\n", Version) fmt.Printf("Version: %s\n", getVersionDescription())
fmt.Println() fmt.Println()
fmt.Println("Usage:") fmt.Println("Usage:")
fmt.Println(" lab-ca <command> [options]") fmt.Println(" lab-ca <command> [options]")
fmt.Println() fmt.Println()
fmt.Println("Available commands:") fmt.Println("Available commands:")
fmt.Println(" initca Generate a new CA certificate and key") fmt.Println(" initca Generate a new CA certificate and key")
fmt.Println(" list List issued certificates")
fmt.Println(" issue Issue a new certificate") fmt.Println(" issue Issue a new certificate")
fmt.Println(" provision Provision certificates from a batch file (HCL)") fmt.Println(" provision Provision certificates from a batch file (HCL)")
fmt.Println(" revoke Revoke a certificate by name or serial number") fmt.Println(" revoke Revoke a certificate by name or serial number")

View File

@@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
GREEN='\033[0;32m' GREEN='\033[0;32m'
NC='\033[0m' # No Color NC='\033[0m' # No Color
LAB_CA="./lab-ca" LAB_CA="build/lab-ca"
PROVISION_CONFIG="examples/example-certificates.hcl" PROVISION_CONFIG="examples/example-certificates.hcl"
# Build and install # Build and install
# Build script for lab-ca with version injection from git tag # Build script for lab-ca with version injection from git tag