Created
January 17, 2016 06:45
-
-
Save jameskyle/38b53179547e5600820b to your computer and use it in GitHub Desktop.
This file contains 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
#!/usr/bin/env zsh | |
# set: ft=sh | |
set -e | |
setopt extendedglob | |
ROOT=/Applications/VMware\ Fusion.app/Contents/Library/ | |
if ! pwd | grep vmwarevm > /dev/null 2>&1; then | |
echo "Doesn't look like we're in a vmware image directory!" | |
exit 1 | |
fi | |
if ! ${ROOT}vmrun stop *.vmx; then | |
echo "VM is not running." | |
else | |
echo "VM has been shut down." | |
fi | |
# just another check, make sure the files in this directory look like vmware | |
# virtual machine files | |
ls -d *.(vmxf|nvram|vmsd|vmx|vmdk) > /dev/null 2>&1 | |
# remove all files that are not essential for a vagrant box | |
rm -irf $(ls -d *~*.(vmxf|nvram|vmsd|vmx|vmdk)) | |
# defragment and shrink the main vmware disk | |
for disk in $(ls *.vmdk);do | |
echo "converting to disk type 0..." | |
${ROOT}/vmware-vdiskmanager -r "${disk}" -t 0 temp.vmdk.new | |
rm "${disk}" | |
mv temp.vmdk.new "${disk}" | |
echo "defragging ${disk}...." | |
${ROOT}/vmware-vdiskmanager -d -- "${disk}" | |
echo "shrinking ${disk}...." | |
${ROOT}/vmware-vdiskmanager -k -- "${disk}" | |
done | |
# create the metadata.json for vmware fusion | |
cat <<EOF > metadata.json | |
{ | |
"provider":"vmware_desktop" | |
} | |
EOF | |
# box it up using the virtual machine name as the box name. | |
box_name=$(basename "${PWD}" .vmwarevm) | |
tar cvzf "${box_name}.box" ./* |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment