Commit Graph

816 Commits

Author SHA1 Message Date
Heig Gregorian
725fb0f4cc Abbreviated "PACKAGE" and "APPLICATION" metavars 2012-05-21 18:26:30 -07:00
Heig Gregorian
6682b863ca Added support for newly introduce 'minimum_munki_version' pkginfo key. 2012-05-21 18:22:05 -07:00
Heig Gregorian
c7cd0416ad Merge branch 'master' into makepkginfo 2012-05-21 18:08:34 -07:00
Heig Gregorian
b6bf37369d Cleaner '--force_install_after_date' help print out 2012-05-21 18:06:08 -07:00
Heig Gregorian
44a54bd69d Minor help formatting clean-up 2012-05-21 17:18:06 -07:00
Heig Gregorian
89afee0a17 Re-work of options in meaningful categories, complete with easier to read formatting
Also removed 'options.appdmg' check since this options no longer exists.
2012-05-21 16:54:24 -07:00
Greg Neagle
065d3c0359 Add support for a 'minimum_munki_version' key for pkginfo items. Munki will not attempt to install an item if the current Munki version is less than the version specified by minimum_munki_version. 2012-05-17 20:06:22 -07:00
Heig Gregorian
343a43fdfe Reorganization of options printed from usage statement
Option list has become quite large and required some type of
organizational structure.  This is an attempt to provide that.
2012-05-15 20:26:41 -07:00
Greg Neagle
62d433aed2 Updated usage and help for all manifestutil subcommands. 2012-05-15 10:52:23 -07:00
Greg Neagle
e363485fd9 manifestutil: don't try to mount the repo if all we are asked to do is display help for a subcommand. 2012-05-15 10:03:35 -07:00
Greg Neagle
949a915900 When writing ApplicationInventory.plist, use a try/except block to avoid errors causing an uncaught exception 2012-05-14 22:45:32 -07:00
Greg Neagle
7d16e0aa4b Make sure item version is not None when using system_profiler data for non-bundle apps. 2012-05-14 21:21:35 -07:00
Justin McWilliams
62c85c68e2 The item is no longer an array. 2012-05-14 17:47:43 -07:00
Justin McWilliams
ad7da41e2a Optimize the new getSPApplicationData() functionality.
My machine has 48 non-bundle apps, and 596 dicts in the new SP cmd's _items array, which is 28.6K loop iterations.  This change reduces that down to 1.
2012-05-14 17:39:37 -07:00
Greg Neagle
57736f188a munkicommon.getAppData() now consults system_profiler data for info on non-bundle applications 2012-05-14 15:15:29 -07:00
Heig Gregorian
b2a8066d6c '--vers' option conflicts with '--version'; changed to '--pkgvers' 2012-05-11 08:29:21 -07:00
Heig Gregorian
284587203a '--name' and '--vers' options added
As with '--display_name', if specified, these 2 new options override
discovered package information.
2012-05-11 08:17:03 -07:00
Greg Neagle
790eac57a9 Print error message when killing /usr/sbin/installer job due to timeout 2012-05-10 08:21:03 -07:00
Heig Gregorian
2ad06f6605 Merge branch 'master' into makepkginfo 2012-05-09 21:20:32 -07:00
Greg Neagle
0184652d29 Attempt to add timeout back to installer operation. 2012-05-09 19:59:33 -07:00
Greg Neagle
db76245023 When installing, call /usr/sbin/installer through our launchd.Job() object. Works around issues with recent Microsoft Office 2011 updates. 2012-05-09 16:28:19 -07:00
Heig Gregorian
339e474b1f Merge branch 'master' into makepkginfo 2012-05-09 07:43:27 -07:00
Heig Gregorian
d855f3125c Added hyphenated equivalents to every option that includes underscores
The previous addition of '--max-os-ver', '--min-os-ver', and
'--unattended-install' prompted this change to provide similar naming
conventions across all options.
2012-05-09 07:34:13 -07:00
Heig Gregorian
08e49636df Safer prepend of '--verify-options-only'. Fixed broken pkginfo generation due to installer_item being wrapped into dmg and original installer_item not being removed from 'arguments' and the new dmg not being added to 'arguments' 2012-05-08 11:58:14 -07:00
Heig Gregorian
c6e23fbbd1 Improved usage print out by adding an epilog describing 'makepkginfo' option usage
Minor addition to 'PassThroughOptionParser' class to suppress default
formatting of 'epilog'.
2012-05-08 11:06:17 -07:00
Heig Gregorian
a919e1c669 When 'def makePkgInfo' testing mode is invoked, prepend '--verify-options-only' instead of appending
This resolves an edge case where an incomplete makepkginfo option may
be at the end of a string.  Prepending would "complete" the incomplete
option.  By appending, we're ensuring that the option cannot be
completed by the string "--verify-options-only"
2012-05-08 09:13:11 -07:00
Heig Gregorian
4f8ffeec40 Improved error interpretation for makePkgInfo testing mode 2012-05-08 08:33:18 -07:00
Heig Gregorian
5db39f6e7c Re-worked '--verify-options-only' function in makepkginfo. def makePkgInfo now assumes that the installer_item is located in the 'options' passed to it; added dedicated 'test_mode' variable.
Assuming that the installer_item is part of 'options' passed to 'def
makePkgInfo' simplifies the function as well as several other parts of
'munkiimport'; namely the removal of installer_item from the list of
arguments is no longer needed.  Additional exit codes added to
--verify-options-only are interpreted by 'def makePkgInfo' testing mode.
2012-05-08 07:31:17 -07:00
Heig Gregorian
d8a2623877 munkiimport / makepkginfo communications simplified by exiting if more than one potential installer_item has been specified.
Note that since the '/path/to/installer_item' could still be anywhere
within munkiimport options, it is essential to remove it from the
options list passed to 'makepkginfo' during pkginfo creation.
2012-05-07 19:58:18 -07:00
Heig Gregorian
6dbbe4c047 Added a '--verify-options-only' option to makepkginfo. Munkiimport makes use of this new option to derive installer_item. The overall result is that now, the /path/to/installer_item may be anywhere in the options string, however only the first /path/to/installer_item will be used.
def makePkgInfo can be passed an 'item_path' of "None" in order to
invoke the testing mode and its interpretation of various exit codes
including the presumed /path/to/installer_item and ignoring any
additional installer_items specified.
2012-05-07 13:35:22 -07:00
Greg Neagle
0ed65b7364 Better warning and safer behavior if a pkginfo's catalogs array contains an empty item (<string></string>) 2012-05-07 12:17:32 -07:00
Greg Neagle
3fe3450d7d Fix typo in networkUp() when checking for non-loopback interfaces 2012-05-07 11:33:42 -07:00
Heig Gregorian
855fb9986c Revert "Converted '--configure' option as a callback."
This reverts commit a2c593be9c.
2012-05-03 18:54:22 -07:00
Heig Gregorian
f4f72174be Added new function to read an option_value as either a plain string or path to file
Since adding the '--notes' option, which can either be a simple string
or the contents of a file (if a valid path is supplied), this same
functionality has been extended to the '--description' option.

Providing a function so that this same operation can be used in other
areas seemed like the logical thing to do.
2012-05-03 11:14:34 -07:00
Heig Gregorian
a2c593be9c Converted '--configure' option as a callback.
--configure as a callback eliminates the need to check if the option
has been set to 'True'
2012-05-03 09:03:15 -07:00
Heig Gregorian
557ada518c Changes to how the 'installer_item' is removed from 'arguments' (presumed to be options for 'makepkginfo'). Removed redundant options which can now be referenced as 'makepkginfo' options. Nicer error reporting for 'makepkginfo' options failure 2012-05-02 21:01:48 -07:00
Heig Gregorian
01c3db99e6 Added alternate option names for 3 items specified as options in 'munkiimport' which are now present as options for 'makepkginfo' 2012-05-02 20:56:43 -07:00
Heig Gregorian
e74ecb583d Re-worked handling of passing 'makepkginfo' options through 'munkiimport'
'--makepkginfo-options' option has been removed in favor of providing
'makepkginfo' options alongside options native to 'munkiimport'.

This is accomplished by collecting all unknown options into
'arguments', which includes '/path/to/installer_item'.

Keeping with conventions typical for performing operations on a file,
'/path/to/installer_item' should always be last.
2012-05-02 13:08:41 -07:00
Heig Gregorian
6d45a7108b '--notes' option added
Notes provide an area for administrators to store information that is
purely reserved for administrative use and not considered in any type
of munki processing.
2012-05-01 18:35:33 -07:00
Heig Gregorian
c8ad63c707 Added tolerance to '--RestartAction' option
If a valid restart action is not provided, use best guess by keying
words "restart" and "logout" if they're provided within the argument's
string.
2012-05-01 15:43:30 -07:00
Heig Gregorian
534a8a1ac5 Usage information updates for "update_for, requires, and blocking_applications" 2012-05-01 14:37:17 -07:00
Heig Gregorian
bafb9a1701 '--autoremove' option added for 'makepkginfo'
Improved option usage information.
2012-05-01 14:22:09 -07:00
Heig Gregorian
03e6ddc1aa Three new array options for 'makepkginfo' added
--update_for - populates the 'update_for' array
--requires - populates the 'requires' array
--blocking_applications - populates the 'blocking_applications' array
2012-05-01 14:16:22 -07:00
Heig Gregorian
bd42067450 Added '--RestartAction' option to 'makepkginfo'
Valid actions that can be specified are:
RequireRestart
RequireLogout
RecommendRestart
2012-05-01 13:44:33 -07:00
Heig Gregorian
27e820f6c4 Minor usage update to '--makepkginfo-options' 2012-05-01 12:01:32 -07:00
Heig Gregorian
8aa107c843 Revert "Removed redundant options in 'munkiimport' as they are now present in 'makepkginfo' and can be triggered using the '--makepkginfo-options=' option."
This reverts commit 3349335fa7.
2012-05-01 11:59:56 -07:00
Heig Gregorian
b4ba365fe9 Added '--force_install_after_date' option to 'makepkginfo'; uses a new function defined in 'munkicommon.py' for validation (see below).
munkicommon.validateForceInstallAfterDateFormat may be useful in other
areas.

The function is tolerant to some "errors" such as single-digit month or
day or even two-digit year.
2012-05-01 11:39:16 -07:00
Heig Gregorian
3349335fa7 Removed redundant options in 'munkiimport' as they are now present in 'makepkginfo' and can be triggered using the '--makepkginfo-options=' option.
Minor update to usage for '-makepkginfo-options' and provided an
example.
2012-05-01 11:36:30 -07:00
Heig Gregorian
467899b5bd Relocated the import of the 'shlex' module to other module imports for clarity
Minor modification to construction of 'cmd' in 'def makePkgInfo'
2012-05-01 08:59:39 -07:00
Heig Gregorian
1e0d0842c7 Argument passed to 'getChoiceChangesXML' now matches the argument used in preceding calls to 'getPackageMetaData'
Minor usage note changed for '--installer_choices_xml' as well as
proper os_version comparison as to NOT exclude Mac OS X 10.6.6.

Modified 'munkicommon.getChoiceChangesXML' to return 'choices' even if
empty.
2012-05-01 08:49:46 -07:00