release: hmac-file-server 3.2
This commit is contained in:
80
buildgo.sh
Executable file
80
buildgo.sh
Executable file
@ -0,0 +1,80 @@
|
||||
#!/bin/bash
|
||||
# HMAC File Server - Build Script
|
||||
|
||||
set -e
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
|
||||
print_status() {
|
||||
echo -e "${GREEN}[BUILD]${NC} $1"
|
||||
}
|
||||
|
||||
print_info() {
|
||||
echo -e "${BLUE}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
print_error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
# Check if Go is installed
|
||||
if ! command -v go &> /dev/null; then
|
||||
print_error "Go is not installed or not in PATH"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Build the application
|
||||
print_status "Building HMAC File Server v3.2..."
|
||||
go build -o hmac-file-server cmd/server/main.go cmd/server/helpers.go cmd/server/config_validator.go cmd/server/config_test_scenarios.go
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
print_status "Build successful! Binary created: ./hmac-file-server"
|
||||
|
||||
# Check binary size
|
||||
SIZE=$(du -h hmac-file-server | cut -f1)
|
||||
print_info "Binary size: $SIZE"
|
||||
|
||||
# Show help to verify it works
|
||||
print_info "Testing binary functionality..."
|
||||
./hmac-file-server --help > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
print_status "Binary is functional!"
|
||||
else
|
||||
print_error "Binary test failed"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
print_error "Build failed!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create test file for manual testing
|
||||
print_info "Creating test file..."
|
||||
echo "Hello, HMAC File Server! $(date)" > test_upload.txt
|
||||
|
||||
# Generate HMAC signature for manual testing
|
||||
print_info "HMAC signature generation for testing:"
|
||||
SECRET="hmac-file-server-is-the-win"
|
||||
MESSAGE="/upload"
|
||||
|
||||
# Check if openssl is available
|
||||
if command -v openssl &> /dev/null; then
|
||||
SIGNATURE=$(echo -n "$MESSAGE" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
|
||||
echo "Secret: $SECRET"
|
||||
echo "Message: $MESSAGE"
|
||||
echo "Signature: $SIGNATURE"
|
||||
echo ""
|
||||
echo "Test with curl (requires server running on localhost:8080):"
|
||||
echo "curl -v -X POST -H \"X-Signature: $SIGNATURE\" -F \"file=@test_upload.txt\" http://localhost:8080/upload"
|
||||
else
|
||||
print_info "OpenSSL not found. You can generate HMAC manually or use the Go tests."
|
||||
echo "To start server: ./hmac-file-server"
|
||||
echo "For testing, check the test/ directory for Go test files."
|
||||
fi
|
||||
|
||||
print_status "Build complete! Ready to run: ./hmac-file-server"
|
Reference in New Issue
Block a user