Skip to content

Instantly share code, notes, and snippets.

@blackjid
Last active March 21, 2025 19:59
Show Gist options
  • Save blackjid/acf36407fcb2552a9385ba53f6a132e4 to your computer and use it in GitHub Desktop.
Save blackjid/acf36407fcb2552a9385ba53f6a132e4 to your computer and use it in GitHub Desktop.
#!/bin/bash
# Escape for JSON
json_escape() {
echo "$1" | /usr/bin/python3 -c 'import json,sys; print(json.dumps(sys.stdin.read().strip()))'
}
# Get system data
model_id=$(/usr/sbin/system_profiler SPHardwareDataType | awk -F ': ' '/Model Identifier/ { print $2 }')
serial_number=$(/usr/sbin/system_profiler SPHardwareDataType | awk -F ': ' '/Serial Number/ { print $2 }')
macos_version=$(/usr/bin/sw_vers -productVersion)
cpu_info=$(/usr/sbin/sysctl -n machdep.cpu.brand_string)
memory=$(/usr/sbin/system_profiler SPHardwareDataType | awk -F ': ' '/Memory:/ { print $2 }')
disk_total=$(/usr/sbin/diskutil info disk0 | awk -F ": " '/Disk Size/ { print $2 }' | sed 's/ (.*//')
# Estimate year from model
guess_mac_year() {
case "$1" in
MacBookAir[1-6],*) echo "2010–2015" ;;
MacBookAir7,*) echo "2015" ;;
MacBookAir8,*) echo "2018–2019" ;;
MacBookAir9,*) echo "2020" ;;
MacBookAir10,*) echo "2020 M1" ;;
MacBookPro14,*) echo "2017" ;;
MacBookPro15,*) echo "2018–2019" ;;
MacBookPro16,*) echo "2019" ;;
MacBookPro17,*) echo "2020 (Intel)" ;;
MacBookPro18,*) echo "2021 (M1 Pro/Max)" ;;
MacBookPro19,*) echo "2023 (M2 Pro/Max)" ;;
iMac[1-9][0-9],*) echo "2012+" ;;
Macmini9,*) echo "2020 M1" ;;
MacStudio1,*) echo "2022+" ;;
MacPro7,*) echo "2019" ;;
*) echo "Unknown" ;;
esac
}
estimated_year=$(guess_mac_year "$model_id")
# Generate JSON
json_output=$(cat <<EOF
{
"model_identifier": $(json_escape "$model_id"),
"serial_number": $(json_escape "$serial_number"),
"macos_version": $(json_escape "$macos_version"),
"cpu": $(json_escape "$cpu_info"),
"memory": $(json_escape "$memory"),
"disk_total": $(json_escape "$disk_total"),
"estimated_year": $(json_escape "$estimated_year")
}
EOF
)
# Copy to clipboard
echo "$json_output" | pbcopy
echo "✅ Listo ahora puedes pegar en el formulario."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment