Skip to content

@tperfitt tperfitt released this Sep 23, 2019 · 9 commits to master since this release

Imagr has been used by Twocanoes MDS for running workflows and the source was posted on bitbucket. With the recent announcement of Imagr project ending, we are doing a public binary and source release of our changes. All of our changes were made with the intention of preserving current Imagr behavior and options. However, it has not been tested in netboot or other environments outside external booting / recovery partition deployments.

The source is based off of Greg Neagle's python embedded framework fork of Imagr and that branch (along with our changes) have been merged into the most recent master of Imagr and released as 1.6.0.

Generally, the additions are around these areas:

  1. support of package_folder: A new component type "package_folder" is now available. When this component type is used, the contents of the folder the URL is pointed to is expanded at runtime and individual URLs to the resources are created dynamically. For example, if you specify :
first_boot type package_folder url file://{{current_volume_path}}/Deploy/Workflows/Workflow1/PreOS-Packages

The "PreOS-Packages" folder may contain DMGs and pkgs. Each item at the top level of the folder is expanded and executed as if it were a component to that individual resource. This is good for allowing the user to add/remove resources without having to update the config file.

  1. Relative paths: In order to allow editing of the resource that Imagr uses by dragging them between folders and being discovered at runtime, Imagr now supports the {{current_volume_path}} variable which is the volume that Imagr is launched from. This variable can also be used for discovering the config files. The "com.grahamgilbert.Imagr.plist" config file can now contain a serverurl path that has a relative path from the current volume it is one in the format: file://{{current_volume_path}}/Deploy/Config/config.plist
  2. UTF8 fixes: To support UTF8 characters in workflow names and paths, various UTF8 fixes were done to better support UTF8.
  3. System and Data Volume: Imagr now supports restoring to an OS volume with a readonly System Volume and read/write user volume. First run scripts were moved from /.imagr to /private/var/.imagr and should behave the same. Imagr will now look at the "Roles" attribute of an APFS partition to determine if it is readonly or readwrite. If that role does not exist, it is assumed to be a prior non-readonly apfs filesystem.
  4. Support for Filevault. If a volume is not mounted but is APFS filevault, it can be erased and used by Imagr.
  5. Sleep. Imagr was falling asleep during running. Sleep is now disabled when running workflows.
  6. Computer Name and Variables: When running a workflow, a computer name and variables can be prompted. These are saved to nvram and scripts can use them during first boot.

Below is a list of commits:

955dc1d Merge branch 'release-1_6_0'
2d0022b issues with catalina resolved
882fdd4 Fix unicode bug for mountedVolumes
1171547 added in support for Catalina goofy 2 APFS volume scheme
88e9946 sleep fix
33ed344 wip-apfs catalina
a7a5dbc Fix unicode issue affecting package file names
d483ad3 Fix unicode issue for volume name
0fce97c Fix filevault erase by using deviceidentifier instead of mountpoint
2d48918 Fix call to targetVolume.filevault
4068021 fixed issue with filevault name
7bc0b49 Fix erase volume without renaming
56db383 Fix unicode issues
fe6c2e9 Fix issue with rename volume
9e29fdc Fix unicode issues
dd9c706 added in computer name variables
d87d565 reverted back to erasing versus destroying apfs container
108c5a5 fixed unicode issue
24428f6 fixed unicode issue
959990e Merge branch 'set_volume_name' into release-1_5_6
a2dd7ec fixed utf8 issue
1080fd7 Add option to use variable {{current_volume_path}} in plist file paths
5318a25 fixed issue with auto serial set and not prompting for variables
c093126 changed check for APFS volumes to only error on unmounting fail. Non-T2 Macs fail when mounting FV volumes
81f9458 Add error panel notification for target volume not found
e1d0901 Fix issue when target volume name not found
2726e7f Merge branch 'mds1_6' into embedded-python-framework
acfc0d3 features to support mds
eb7fe53 Refactor renaming volume when erasing
1021239 Fix typo
1380bd9 Add support for specifying a target volume name
009f660 bring to front after launch; nvram computer name
9e87437 Merge branch 'embedded-python-framework' of into embedded-python-framework
29f830d fixed issue with auto select
64c256b Refine processing url for os installer .app outside of disk image
a686624 removed trailing slash as needed and converted URL to file path for .app outside of disk image
438eeaa Merge branch 'embedded-python-framework' of into embedded-python-framework

Assets 4
You can’t perform that action at this time.