Fix annoying VBox popup

This commit is contained in:
Jeffrey Morgan 2015-07-23 11:31:28 -07:00
parent 1de2d83b96
commit 1f9ff60bf3
6 changed files with 39 additions and 26 deletions

View File

@ -182,7 +182,7 @@ RUN sed -i \
-e "s/%DOCKERMACHINE_VERSION%/$DOCKER_MACHINE_VERSION/g" \ -e "s/%DOCKERMACHINE_VERSION%/$DOCKER_MACHINE_VERSION/g" \
-e "s/%DOCKERCOMPOSE_VERSION%/$DOCKER_COMPOSE_VERSION/g" \ -e "s/%DOCKERCOMPOSE_VERSION%/$DOCKER_COMPOSE_VERSION/g" \
-e "s/%BOOT2DOCKER_ISO_VERSION%/$BOOT2DOCKER_ISO_VERSION/g" \ -e "s/%BOOT2DOCKER_ISO_VERSION%/$BOOT2DOCKER_ISO_VERSION/g" \
-e "s/%DOCKERCLIAPP_VERSION%/$INSTALLER_VERSION/g" \ -e "s/%DOCKERQUICKSTARTTERMINALAPP_VERSION%/$INSTALLER_VERSION/g" \
-e "s/%KITEMATICAPP_VERSION%/$KITEMATIC_VERSION/g" \ -e "s/%KITEMATICAPP_VERSION%/$KITEMATIC_VERSION/g" \
mpkg/Resources/en.lproj/Localizable.strings mpkg/Resources/en.lproj/Localizable.strings

View File

@ -9,8 +9,6 @@ dockerbuild: clean
docker run --name "$(DOCKER_CONTAINER)" "$(DOCKER_IMAGE)" docker run --name "$(DOCKER_CONTAINER)" "$(DOCKER_IMAGE)"
docker cp "$(DOCKER_CONTAINER)":/DockerToolbox.pkg . docker cp "$(DOCKER_CONTAINER)":/DockerToolbox.pkg .
docker rm "$(DOCKER_CONTAINER)" 2>/dev/null || true docker rm "$(DOCKER_CONTAINER)" 2>/dev/null || true
productsign --sign "3rd Party Mac Developer Installer: Docker Inc" DockerToolbox.pkg DockerToolboxSigned.pkg || true
mv DockerToolboxSigned.pkg DockerToolbox.pkg || true
clean: clean:
rm -f DockerToolbox.pkg rm -f DockerToolbox.pkg

View File

@ -11,7 +11,7 @@
<line choice="choiceDockerMachineCLI"/> <line choice="choiceDockerMachineCLI"/>
<line choice="choiceDockerComposeCLI"/> <line choice="choiceDockerComposeCLI"/>
<line choice="choiceBoot2DockerISO"/> <line choice="choiceBoot2DockerISO"/>
<line choice="choiceDockerCLIAPP"/> <line choice="choiceDockerQuickstartTerminalAPP"/>
<line choice="choiceKitematicAPP"/> <line choice="choiceKitematicAPP"/>
<line choice="choiceVBox"/> <line choice="choiceVBox"/>
</choices-outline> </choices-outline>
@ -27,8 +27,8 @@
<choice id="choiceBoot2DockerISO" title="choiceBoot2DockerISO_title" description="choiceBoot2DockerISO_msg" start_selected="true" start_enabled="true" start_visible="false"> <choice id="choiceBoot2DockerISO" title="choiceBoot2DockerISO_title" description="choiceBoot2DockerISO_msg" start_selected="true" start_enabled="true" start_visible="false">
<pkg-ref id="io.boot2dockeriso.pkg.boot2dockeriso"/> <pkg-ref id="io.boot2dockeriso.pkg.boot2dockeriso"/>
</choice> </choice>
<choice id="choiceDockerCLIAPP" title="choiceDockerCLIAPP_title" description="choiceDockerCLIAPP_msg" start_selected="true" start_enabled="true" start_visible="true"> <choice id="choiceDockerQuickstartTerminalAPP" title="choiceDockerQuickstartTerminalAPP_title" description="choiceDockerQuickstartTerminalAPP_msg" start_selected="true" start_enabled="true" start_visible="true">
<pkg-ref id="io.docker.pkg.dockercliapp"/> <pkg-ref id="io.docker.pkg.dockerquickstartterminalapp"/>
</choice> </choice>
<choice id="choiceKitematicAPP" title="choiceKitematicAPP_title" description="choiceKitematicAPP_msg" start_selected="true" start_enabled="true" start_visible="true"> <choice id="choiceKitematicAPP" title="choiceKitematicAPP_title" description="choiceKitematicAPP_msg" start_selected="true" start_enabled="true" start_visible="true">
<pkg-ref id="io.docker.pkg.kitematicapp"/> <pkg-ref id="io.docker.pkg.kitematicapp"/>
@ -49,8 +49,8 @@
<pkg-ref id="io.boot2dockeriso.pkg.boot2dockeriso"> <pkg-ref id="io.boot2dockeriso.pkg.boot2dockeriso">
<bundle-version/> <bundle-version/>
</pkg-ref> </pkg-ref>
<pkg-ref id="io.docker.pkg.dockercliapp" auth="Root" version="%DOCKERCLIAPP_VERSION%" installKBytes="%DOCKERCLIAPP_INSTALL_KBYTES%">#dockercliapp.pkg</pkg-ref> <pkg-ref id="io.docker.pkg.dockerquickstartterminalapp" auth="Root" version="%DOCKERQUICKSTARTTERMINALAPP_VERSION%" installKBytes="%DOCKERQUICKSTARTTERMINALAPP_INSTALL_KBYTES%">#dockerquickstartterminalapp.pkg</pkg-ref>
<pkg-ref id="io.docker.pkg.dockercliapp"> <pkg-ref id="io.docker.pkg.dockerquickstartterminalapp">
<bundle-version/> <bundle-version/>
</pkg-ref> </pkg-ref>
<pkg-ref id="io.docker.pkg.kitematicapp" auth="Root" version="%KITEMATICAPP_VERSION%" installKBytes="%KITEMATICAPP_INSTALL_KBYTES%">#kitematicapp.pkg</pkg-ref> <pkg-ref id="io.docker.pkg.kitematicapp" auth="Root" version="%KITEMATICAPP_VERSION%" installKBytes="%KITEMATICAPP_INSTALL_KBYTES%">#kitematicapp.pkg</pkg-ref>
@ -99,10 +99,13 @@
{ {
/* Embedded scripts are not available here. So, just do a command /* Embedded scripts are not available here. So, just do a command
line checking for running VMs instead. */ line checking for running VMs instead. */
if (vboxNeedsUpgrade()) {
system.log(vboxplist.CFBundleVersion);
rcScript = system.run('/bin/sh', '-c', '/bin/ps -e | /usr/bin/grep -E "VirtualBox.*startvm|VBoxNetDHCP|VBoxNetNAT|VBoxHeadless|VBoxSVC" | /usr/bin/grep -qv grep'); rcScript = system.run('/bin/sh', '-c', '/bin/ps -e | /usr/bin/grep -E "VirtualBox.*startvm|VBoxNetDHCP|VBoxNetNAT|VBoxHeadless|VBoxSVC" | /usr/bin/grep -qv grep');
result = (rcScript != 0); result = (rcScript != 0);
system.log("system.run /bin/sh .. returned: " + rcScript + " result=" + result); system.log("system.run /bin/sh .. returned: " + rcScript + " result=" + result);
} catch (e) { system.log(e); result = false; } }
} catch (e) { system.log(e); }
if (!result) if (!result)
{ {
@ -115,9 +118,21 @@
system.log("result:" + result); system.log("result:" + result);
return result; return result;
} }
function vboxNeedsUpgrade ()
{
try {
vboxplist = system.files.plistAtPath('/Applications/VirtualBox.app/Contents/Info.plist');
if (!vboxplist || !vboxplist.CFBundleVersion || system.compareVersions(vboxplist.CFBundleVersion, '%VBOX_VERSION') === -1) {
return true;
}
return false;
} catch (e){ system.log(e); return false; }
}
/* js:pkmk:end */ /* js:pkmk:end */
</script> </script>
<choice id="choiceVBox" title="choiceVBox_title" description="choiceVBox_msg" start_selected="true" start_enabled="true" start_visible="true"> <choice id="choiceVBox" title="choiceVBox_title" description="choiceVBox_msg" start_selected="vboxNeedsUpgrade()" start_enabled="vboxNeedsUpgrade()" start_visible="vboxNeedsUpgrade()">
<pkg-ref id="org.virtualbox.pkg.vboxkexts" auth="Root" version="%VBOX_VERSION%" installKBytes="935">#VBoxKEXTs.pkg</pkg-ref> <pkg-ref id="org.virtualbox.pkg.vboxkexts" auth="Root" version="%VBOX_VERSION%" installKBytes="935">#VBoxKEXTs.pkg</pkg-ref>
<pkg-ref id="org.virtualbox.pkg.virtualbox" auth="Root" version="%VBOX_VERSION%" installKBytes="247220">#VirtualBox.pkg</pkg-ref> <pkg-ref id="org.virtualbox.pkg.virtualbox" auth="Root" version="%VBOX_VERSION%" installKBytes="247220">#VirtualBox.pkg</pkg-ref>
<pkg-ref id="org.virtualbox.pkg.virtualboxcli" auth="Root" version="%VBOX_VERSION%" installKBytes="4">#VirtualBoxCLI.pkg</pkg-ref> <pkg-ref id="org.virtualbox.pkg.virtualboxcli" auth="Root" version="%VBOX_VERSION%" installKBytes="4">#VirtualBoxCLI.pkg</pkg-ref>

View File

@ -11,7 +11,7 @@
<key>CFBundleIconFile</key> <key>CFBundleIconFile</key>
<string>applet</string> <string>applet</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>com.apple.ScriptEditor.id.dockercliapp</string> <string>com.apple.ScriptEditor.id.dockerquickstartterminalapp</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleName</key> <key>CFBundleName</key>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<pkg-info overwrite-permissions="true" relocatable="false" identifier="io.docker.pkg.dockercliapp" postinstall-action="none" version="%DOCKERCLIAPP_VERSION%" format-version="2" generator-version="steeve's strong hands" install-location="/Applications/" auth="root">
<payload numberOfFiles="%DOCKERCLIAPP_NUMBER_OF_FILES%" installKBytes="%DOCKERCLIAPP_INSTALL_KBYTES%"/>
<bundle-version/>
<upgrade-bundle/>
<update-bundle/>
<atomic-update-bundle/>
<strict-identifier/>
<relocate/>
</pkg-info>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<pkg-info overwrite-permissions="true" relocatable="false" identifier="io.docker.pkg.dockerquickstartterminalapp" postinstall-action="none" version="%DOCKERQUICKSTARTTERMINALAPP_VERSION%" format-version="2" generator-version="steeve's strong hands" install-location="/Applications/" auth="root">
<payload numberOfFiles="%DOCKERQUICKSTARTTERMINALAPP_NUMBER_OF_FILES%" installKBytes="%DOCKERQUICKSTARTTERMINALAPP_INSTALL_KBYTES%"/>
<bundle-version/>
<upgrade-bundle/>
<update-bundle/>
<atomic-update-bundle/>
<strict-identifier/>
<relocate/>
</pkg-info>