Monorepo for Aesthetic.Computer aesthetic.computer
at main 73 lines 2.3 kB view raw
1#!/usr/bin/env fish 2 3function usage 4 echo "Usage: ssl-install.fish [--install-only]" 5 echo " --install-only Only install the SSL certificates, do not generate them." 6end 7 8# Parse arguments 9set INSTALL_ONLY 0 10for arg in $argv 11 switch $arg 12 case --install-only 13 set INSTALL_ONLY 1 14 case "*" 15 usage 16 exit 1 17 end 18end 19 20# Determine OS 21set OS (uname) 22 23# Get the script directory 24set SCRIPT_DIR (dirname (status --current-filename)) 25cd $SCRIPT_DIR 26 27echo "🔧 Running ssl-install.fish (install only: $INSTALL_ONLY)" 28 29# Generate certs if not install-only 30if test $INSTALL_ONLY -eq 0 31 # Build list of domains/IPs to include in certificate 32 set -l domains localhost aesthetic.local sotce.local 127.0.0.1 0.0.0.0 33 34 # Add HOST_IP if set 35 if test -n "$HOST_IP" 36 set -a domains $HOST_IP 37 end 38 39 # Add GitHub Codespace URLs if in Codespaces 40 if test -n "$CODESPACE_NAME"; and test -n "$GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN" 41 # Add wildcard for all codespace ports 42 set -a domains "*.$GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN" 43 # Add specific URLs for common ports 44 set -a domains "$CODESPACE_NAME-8888.$GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN" 45 set -a domains "$CODESPACE_NAME-8111.$GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN" 46 set -a domains "$CODESPACE_NAME-8889.$GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN" 47 echo "🌐 Adding GitHub Codespace domains to certificate" 48 end 49 50 mkcert --cert-file localhost.pem --key-file localhost-key.pem $domains >/dev/null 2>&1 51 command cat localhost.pem localhost-key.pem >combined.pem 52 openssl x509 -outform der -in combined.pem -out localhost.crt 53 cp localhost.crt ../system/public/aesthetic.crt 54end 55 56# Install cert 57set CERT_FILE "localhost.pem" 58if test -f $CERT_FILE 59 switch $OS 60 case Linux 61 sudo cp $CERT_FILE /etc/pki/ca-trust/source/anchors/ 62 sudo update-ca-trust extract 63 case Darwin 64 sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain $CERT_FILE 65 case '*' 66 echo "Unsupported OS: $OS" 67 exit 1 68 end 69else 70 echo "🔴 Certificate not found: $CERT_FILE" 71end 72 73cd - 2>/dev/null || true