Last active
March 21, 2025 19:59
-
-
Save blackjid/acf36407fcb2552a9385ba53f6a132e4 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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