Update build process and version embedding.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,6 +2,7 @@
|
||||
**/go.sum
|
||||
# Ignore the binary output
|
||||
lab-ca*
|
||||
build
|
||||
# Ignore any certificate files
|
||||
*.pem
|
||||
# Ignore CA configuration and certificate definitions.
|
||||
|
15
build.sh
15
build.sh
@@ -6,4 +6,17 @@ if [ $? -eq 0 ]; then
|
||||
else
|
||||
VERSION="dev"
|
||||
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
14
main.go
@@ -7,7 +7,7 @@ import (
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var Version = "dev"
|
||||
var Version = ""
|
||||
|
||||
// Global flags available to all commands
|
||||
var overwrite bool
|
||||
@@ -225,7 +225,7 @@ func main() {
|
||||
Use: "version",
|
||||
Short: "Show version information",
|
||||
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)
|
||||
@@ -235,15 +235,23 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
func getVersionDescription() string {
|
||||
if Version == "" {
|
||||
return "no version information was compiled in"
|
||||
}
|
||||
return Version
|
||||
}
|
||||
|
||||
func printMainHelp() {
|
||||
fmt.Printf("lab-ca - Certificate Authority Utility\n")
|
||||
fmt.Printf("Version: %s\n", Version)
|
||||
fmt.Printf("Version: %s\n", getVersionDescription())
|
||||
fmt.Println()
|
||||
fmt.Println("Usage:")
|
||||
fmt.Println(" lab-ca <command> [options]")
|
||||
fmt.Println()
|
||||
fmt.Println("Available commands:")
|
||||
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(" provision Provision certificates from a batch file (HCL)")
|
||||
fmt.Println(" revoke Revoke a certificate by name or serial number")
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
GREEN='\033[0;32m'
|
||||
NC='\033[0m' # No Color
|
||||
LAB_CA="./lab-ca"
|
||||
LAB_CA="build/lab-ca"
|
||||
PROVISION_CONFIG="examples/example-certificates.hcl"
|
||||
# Build and install
|
||||
# Build script for lab-ca with version injection from git tag
|
||||
|
Reference in New Issue
Block a user