The ezeep print app for Mac can be deployed to your organization's environment via Munki, a software deployment tool.
Prerequisites:
Prior knowledge of working with Munki software tool.
Configuration
Importing ezeep Blue Print App into the Munki server
1. Import ezeep Print App.pkg:
munkiimport /Users/rwelz/Desktop/ezeep\ Print\ App.pkg
Item name: ezeep Print App
Display name: ezeep Print App
Description: enables printing over ezeep
Version: 1.0.30
Category: Printing
Developer: ThinPrint GmbH
Unattended install: False
Unattended uninstall: False
Catalogs: testing
Import this item? [y/N] y
Upload item to subdirectory path []:
No existing product icon found.
Attempt to create a product icon? [y/N] y
Attempting to extract and upload icon...
Imported icons/ezeep Print App_1.png
icons/ezeep Print App_2.png.
Copying ezeep Print App.pkg to repo...
Copied ezeep Print App.pkg to pkgs/ezeep Print App-1.0.30.pkg.
Edit pkginfo before upload? [y/N]: n
Saved pkginfo to pkgsinfo/ezeep Print App-1.0.30.
Rebuild catalogs? [y/N] y
Rebuilding catalogs at file:///Users/Shared/munki_repo...
Created icons/_icon_hashes.plist...
2. Edit the icons:
remove the wrong icon and name the icon you want to keep by removing the
• underscore und the number from the filename like in:
/Users/Shared/munki_repo/icons/ezeep Print App_1.png
/Users/Shared/munki_repo/icons/ezeep Print App_2.png
• remove
/Users/Shared/munki_repo/icons/ezeep Print App_1.png
• and rename
/Users/Shared/munki_repo/icons/ezeep Print App_2.png
to
/Users/Shared/munki_repo/icons/ezeep Print App.png
3. Then create a new catalog with:
makecatalogs
Getting list of icons...
Hashing Firefox.png...
Hashing ezeep Print App.png...
Getting list of pkgsinfo...
Getting list of pkgs...
Adding pkgsinfo/ezeep Print App-1.0.30 to testing...
Adding pkgsinfo/apps/mozilla/Firefox-88.0.1 to testing...
Created catalogs/all...
Created catalogs/testing...
Created icons/_icon_hashes.plist…
4. Add the imported ezeep Print App.pkg to the manifest:
manifestutil
Entering interactive mode... (type "help" for commands)
> add-catalog testing --manifest site_default
Catalog testing is already in manifest site_default.
> add-pkg ezeep\ Print\ App --manifest site_default
Added ezeep Print App to section managed_installs of manifest site_default.
> exit
5. Now when you open Managed Software Center.app on a Mac configured as Munki client you will see a new
update – even when it is a first install of ezeep Blue Print App
Make the client auto launch ezeep Blue Print App after installation
To make ezeep Blue Print App to launch automatically when user logs in and install the printers the user is
able to use, we need to add a script to the ezep Print App pkgsvinfo file in a quoted format:
1. Create a new file and save it to the destktop with a name like munki_postinstall_script.txt
#!/bin/sh
if [ ! -d "/Library/PrivilegedHelperTools" ]
then
mkdir "/Library/PrivilegedHelperTools"
chmod 755 "/Library/PrivilegedHelperTools"
fi
if [ -f "/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-
helper" ]
then
rm "/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-
helper"
fi
cat << EOF > "/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-
helper"
#!/bin/sh
open "/Applications/ezeep Print App.app"
rm ~/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.plist
EOF
chmod 755 "/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-
helper"
out=$(dscacheutil -q user | grep -A 3 -B 2 -e uid:\ 5'[0-9][0-9]' | grep "dir:" | sed -e
's/dir: //g')
for i in $out
do
j=$(basename "$i")
if [ ! -d "$i/Library/LaunchAgents" ]
then
mkdir "$i/Library/LaunchAgents"
chown "$j" "$i/Library/LaunchAgents"
chmod 755 "$i/Library/LaunchAgents"
fi
cat << EOF > "$i/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.
plist"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/Property-
List-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser</string>
<key>LimitLoadToSessionType</key>
<array>
<string>Aqua</string>
<string>StandardIO</string>
</array>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-
helper</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
EOF
chown "$j" "$i/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.plist"
chmod 644 "$i/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.plist"
done
exit 0
2. Copy the content of this script into munki_postinstall_script.txt.
3. Let’s Munki convert the contents of this file into a special quoted format:
/usr/local/munki/makepkginfo --postinstall_script /Users/rwelz/Desktop/munki_postinstall_
script.txt
4. Copy the relevant part of the output (between <string> and </string> and paste it into the pkgsinfo
file together with the relevant xml key:
<string>#!/bin/sh
if [ ! -d "/Library/PrivilegedHelperTools" ]
then
mkdir "/Library/PrivilegedHelperTools"
chmod 755 „/Library/PrivilegedHelperTools"
…
…
…
chmod 644 "$i/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.plist"
done
exit 0</string>
5. Paste this into the file /Users/Shared/munki_repo/pkgsinfo/ezeep Print App-1.0.30 like:
<key>receipts</key>
<array>
<dict>
<key>installed_size</key>
<integer>7</integer>
<key>packageid</key>
<string>com.thinprint.ezeep.printapp.logging</string>
<key>version</key>
<string>1.0.30</string>
</dict>
<dict>
<key>installed_size</key>
<integer>764</integer>
<key>packageid</key>
<string>com.thinprint.ezeep.printapp.printerdriver</string>
<key>version</key>
<string>1.0.2</string>
</dict>
<dict>
<key>installed_size</key>
<integer>123565</integer>
<key>packageid</key>
<string>com.ThinPrint.TPAutoConnect</string>
<key>version</key>
<string>12.2.93</string>
</dict>
<dict>
<key>installed_size</key>
<integer>74015</integer>
<key>packageid</key>
<string>com.ThinPrint.TPAutoConnect.PPDGen</string>
<key>version</key>
<string>1.0.30</string>
</dict>
<dict>
<key>installed_size</key>
<integer>99173</integer>
<key>packageid</key>
<string>com.thinprint.ezeep.printapp</string>
<key>version</key>
<string>1.0.30</string>
</dict>
</array>
<key>postinstall_script</key>
<string>#!/bin/sh
if [ ! -d "/Library/PrivilegedHelperTools" ]
then
mkdir "/Library/PrivilegedHelperTools"
chmod 755 "/Library/PrivilegedHelperTools"
fi
if [ -f "/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-
helper" ]
then
rm "/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-
helper"
fi
cat << EOF > "/Library/PrivilegedHelperTools/com.thinprint.
ezeep.ezeep-Print-App-launchOncePerUser-helper"
#!/bin/sh
open "/Applications/ezeep Print App.app"
rm ~/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.plist
EOF
chmod 755 "/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-
helper"
out=$(dscacheutil -q user | grep -A 3 -B 2 -e uid:\ 5'[0-9][0-9]' | grep "dir:" | sed -e
's/dir: //g')
for i in $out
do
j=$(basename "$i")
if [ ! -d "$i/Library/LaunchAgents" ]
then
mkdir "$i/Library/LaunchAgents"
chown "$j" "$i/Library/LaunchAgents"
chmod 755 "$i/Library/LaunchAgents"
fi
cat << EOF > "$i/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.
plist"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-
1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser</string>
<key>LimitLoadToSessionType</key>
<array>
<string>Aqua</string>
<string>StandardIO</string>
</array>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/Library/PrivilegedHelperTools/com.thinprint.
ezeep.ezeep-Print-App-launchOncePerUser-helper</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
EOF
chown "$j" "$i/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.plist"
chmod 644 "$i/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.plist"
done
exit 0</string>
<key>unattended_install</key>
<true/>
<key>unattended_uninstall</key>
<false/>
<key>uninstall_method</key>
<string>removepackages</string>
<key>uninstallable</key>
<true/>
<key>version</key>
<string>1.0.30</string>
<key>RestartAction</key>
<string>RequireRestart</string>
</dict>
</plist>
6. Call:
/usr/local/munki/makecatalogs
to make Munki recognize the changes in the pkgsinfo file.