39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
"""Generate booking QR code at container startup"""
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
|
|
def generate_booking_qr():
|
|
"""Generate QR code for the booking page"""
|
|
# Get base URL from environment, default to localhost
|
|
base_url = os.environ.get('BASE_URL', 'http://localhost')
|
|
booking_url = f"{base_url}/book"
|
|
|
|
# Create output directory if it doesn't exist
|
|
output_dir = '/web/assets'
|
|
os.makedirs(output_dir, exist_ok=True)
|
|
|
|
output_file = f'{output_dir}/booking-qr.png'
|
|
|
|
try:
|
|
# Generate QR code using qrencode
|
|
subprocess.run(
|
|
['qrencode', '-o', output_file, '-s', '5', booking_url],
|
|
check=True,
|
|
capture_output=True
|
|
)
|
|
print(f"✓ Generated booking QR code: {output_file}")
|
|
print(f" URL: {booking_url}")
|
|
return True
|
|
except subprocess.CalledProcessError as e:
|
|
print(f"✗ Failed to generate QR code: {e.stderr.decode()}", file=sys.stderr)
|
|
return False
|
|
except FileNotFoundError:
|
|
print("✗ qrencode not found. Install with: apt-get install qrencode", file=sys.stderr)
|
|
return False
|
|
|
|
if __name__ == '__main__':
|
|
success = generate_booking_qr()
|
|
sys.exit(0 if success else 1)
|