Se vuoi eseguire lo script dell'installazione richiede un paio di passaggi dal nome del file .dmg
, il nome del volume creato, il nome dell'applicazione e il nome del dispositivo che deve essere rimosso possono essere tutti diversi Inoltre possono avere spazi in loro.
Anche un .dmg
può avere un file .app
o un file .pkg
al suo interno e questi richiedono un comportamento diverso.
Ecco una funzione di bash per installare un dmg da un URL remoto:
# usage: installdmg https://example.com/path/to/pkg.dmg
function installdmg {
set -x
tempd=$(mktemp -d)
curl $1 > $tempd/pkg.dmg
listing=$(sudo hdiutil attach $tempd/pkg.dmg | grep Volumes)
volume=$(echo "$listing" | cut -f 3)
if [ -e "$volume"/*.app ]; then
sudo cp -rf "$volume"/*.app /Applications
elif [ -e "$volume"/*.pkg ]; then
package=$(ls -1 | grep *.pkg | head -1)
sudo installer -pkg "$volume"/"$package".pkg -target /
fi
sudo hdiutil detach "$(echo "$listing" | cut -f 1)"
rm -rf $tempd
set +x
}
Nota se il tuo .dmg
ha un file .app
che viene eseguito per installare il programma, allora dovrai fare di nuovo qualcosa di diverso.