- Replace hardcoded /Users/sd9235/ paths with $HOME in all SKILLS docs - Use WORKSPACE_DIR variable in backup-main.sh (auto-resolves from script location) - Genericize 'Forcepoint CertChecker' / 'corporate proxy' to 'SSL-intercepting proxy' - Add scripts/switch-network.sh for toggling npm between corporate proxy and home - No functional code changes — only comments, docs, and paths
82 lines
2.2 KiB
Bash
Executable File
82 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# Toggle npm/pnpm between corporate proxy and direct (home) network.
|
|
#
|
|
# Usage:
|
|
# source scripts/switch-network.sh corp # AT&T / corporate proxy
|
|
# source scripts/switch-network.sh home # Direct internet (home/VPN off)
|
|
# source scripts/switch-network.sh status # Show current config
|
|
#
|
|
# This modifies ~/.npmrc. Must be sourced (not executed) to affect current shell.
|
|
|
|
set -euo pipefail
|
|
|
|
NPMRC="$HOME/.npmrc"
|
|
CORP_PROXY="http://cso.proxy.att.com:8080/"
|
|
CORP_REGISTRY="https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/"
|
|
HOME_REGISTRY="https://registry.npmjs.org/"
|
|
|
|
show_status() {
|
|
echo "=== Current npm config ==="
|
|
echo " proxy: $(npm config get proxy 2>/dev/null || echo 'not set')"
|
|
echo " https-proxy: $(npm config get https-proxy 2>/dev/null || echo 'not set')"
|
|
echo " registry: $(npm config get registry 2>/dev/null || echo 'not set')"
|
|
if command -v pnpm &>/dev/null; then
|
|
echo " pnpm store: $(pnpm store path 2>/dev/null || echo 'unknown')"
|
|
fi
|
|
echo ""
|
|
if [ -f "$NPMRC" ]; then
|
|
echo "=== ~/.npmrc ==="
|
|
cat "$NPMRC"
|
|
else
|
|
echo "No ~/.npmrc found"
|
|
fi
|
|
}
|
|
|
|
set_corp() {
|
|
cat > "$NPMRC" <<EOF
|
|
proxy=$CORP_PROXY
|
|
https-proxy=$CORP_PROXY
|
|
registry=$CORP_REGISTRY
|
|
strict-ssl=false
|
|
EOF
|
|
echo "✅ Switched to CORPORATE network"
|
|
echo " proxy: $CORP_PROXY"
|
|
echo " registry: $CORP_REGISTRY"
|
|
echo ""
|
|
echo " Lock files will resolve through JFrog proxy."
|
|
echo " Run 'npm install' / 'pnpm install' as normal."
|
|
}
|
|
|
|
set_home() {
|
|
cat > "$NPMRC" <<EOF
|
|
registry=$HOME_REGISTRY
|
|
EOF
|
|
echo "✅ Switched to HOME network"
|
|
echo " proxy: (none)"
|
|
echo " registry: $HOME_REGISTRY"
|
|
echo ""
|
|
echo " Lock files will resolve from npmjs.org."
|
|
echo " To regenerate clean lock files:"
|
|
echo " rm package-lock.json && npm install"
|
|
echo " rm pnpm-lock.yaml && pnpm install"
|
|
}
|
|
|
|
case "${1:-status}" in
|
|
corp|corporate|work)
|
|
set_corp
|
|
;;
|
|
home|direct|off)
|
|
set_home
|
|
;;
|
|
status|show)
|
|
show_status
|
|
;;
|
|
*)
|
|
echo "Usage: source scripts/switch-network.sh [corp|home|status]"
|
|
echo ""
|
|
echo " corp — Enable corporate proxy (AT&T JFrog)"
|
|
echo " home — Direct internet (no proxy)"
|
|
echo " status — Show current npm config"
|
|
;;
|
|
esac
|