Update build process and version embedding.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -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.
|
||||||
|
15
build.sh
15
build.sh
@@ -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
14
main.go
@@ -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")
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user