depot3 3.0.15 → 3.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGES.md +21 -1
- data/README.md +6 -6
- data/bin/d3 +3 -3
- data/bin/d3admin +257 -293
- data/lib/d3/admin/add.rb +98 -94
- data/lib/d3/admin/interactive.rb +195 -161
- data/lib/d3/admin/options.rb +424 -412
- data/lib/d3/admin/prefs.rb +73 -42
- data/lib/d3/admin/validate.rb +50 -43
- data/lib/d3/client/auth.rb +4 -2
- data/lib/d3/client/class_methods.rb +169 -119
- data/lib/d3/client/receipt.rb +2 -2
- data/lib/d3/database.rb +167 -180
- data/lib/d3/log.rb +2 -3
- data/lib/d3/package/server_actions.rb +2 -3
- data/lib/d3/package/validate.rb +63 -70
- data/lib/d3/version.rb +1 -2
- metadata +2 -2
data/lib/d3/admin/options.rb
CHANGED
@@ -22,441 +22,453 @@
|
|
22
22
|
###
|
23
23
|
###
|
24
24
|
|
25
|
-
|
26
25
|
###
|
27
26
|
module D3
|
28
27
|
module Admin
|
29
28
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
# these actions write to the server and
|
34
|
-
# need a legit admin, not one
|
35
|
-
# listed in D3.badmins.
|
36
|
-
#
|
37
|
-
ACTIONS_NEEDING_ADMIN = %w{ add edit live delete }
|
38
|
-
|
39
|
-
# the possible targets to config
|
40
|
-
CONFIG_TARGETS = %w{all jss db dist workspace pkg-id-prefix}
|
29
|
+
# all the available actions
|
30
|
+
ACTIONS = %w(add edit live delete info search report config help).freeze
|
41
31
|
|
32
|
+
# these actions write to the server and
|
33
|
+
# need a legit admin, not one
|
34
|
+
# listed in D3.badmins.
|
35
|
+
#
|
36
|
+
ACTIONS_NEEDING_ADMIN = %w(add edit live delete).freeze
|
42
37
|
|
43
|
-
|
44
|
-
|
38
|
+
# the possible targets to config
|
39
|
+
CONFIG_TARGETS = %w(all jss db dist workspace pkg-id-prefix editor).freeze
|
45
40
|
|
46
|
-
|
47
|
-
|
48
|
-
DFT_PKG_TYPE = :pkg
|
49
|
-
DFT_PKG_ID_PREFIX = "d3"
|
50
|
-
DFT_WORKSPACE = ENV['HOME']
|
51
|
-
DFT_EXPIRATION = 0
|
52
|
-
DFT_LIST_TYPE = :all
|
41
|
+
TRUE_VALUES = [true, /^true$/i, 1, /^y(es)?$/i].freeze
|
42
|
+
FALSE_VALUES = [false, /^false$/i, nil, 0, /^no?$/i].freeze
|
53
43
|
|
44
|
+
DFT_REQUIRED = '---Required---'.freeze
|
45
|
+
DFT_NONE = 'none'.freeze
|
46
|
+
DFT_PKG_TYPE = :pkg
|
47
|
+
DFT_PKG_ID_PREFIX = 'd3'.freeze
|
48
|
+
DFT_WORKSPACE = ENV['HOME']
|
49
|
+
DFT_EXPIRATION = 0
|
50
|
+
DFT_LIST_TYPE = :all
|
54
51
|
|
52
|
+
DISPLAY_TRUE_FALSE = proc { |v| case v; when *TRUE_VALUES then 'true'; when *FALSE_VALUES then 'false'; else 'unknown'; end }
|
53
|
+
DISPLAY_DFT_REQUIRED = proc { |v| v.to_s.empty? ? DFT_REQUIRED : v }
|
54
|
+
DISPLAY_DFT_NONE = proc { |v| v.to_s.empty? ? DFT_NONE : v }
|
55
|
+
DISPLAY_COMMA_SEP_LIST = proc { |v| DISPLAY_DFT_NONE.call JSS.to_s_and_a(v)[:stringform] }
|
56
|
+
DISPLAY_PKG_TYPE = proc { |v| v.to_s.start_with?('d') ? 'dmg' : 'pkg' }
|
57
|
+
DISPLAY_LIST_TYPE = proc { |v| v.to_s.empty? ? DFT_LIST_TYPE : v }
|
55
58
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
59
|
+
# This hash provides details about how to handle all possible CLI option
|
60
|
+
# values for d3admin, be they input from the command-line or via a walkthru
|
61
|
+
#
|
62
|
+
# Each key matches a key/method in the @options OpenStruct in d3admin.
|
63
|
+
# representing the value for that option from the commandline.
|
64
|
+
#
|
65
|
+
# For each one, there is a sub-hash defining these things:
|
66
|
+
#
|
67
|
+
# :default: The global default value, before applying any
|
68
|
+
# inherited values from older pkgs, or user-specified values
|
69
|
+
# from the commandline or walkthru. Note these are the Ruby internal
|
70
|
+
# default values (e.g. nil) NOT the cli option default values
|
71
|
+
# (e.g. 'n') which are defined in the d3admins parse_cli method.
|
72
|
+
#
|
73
|
+
# :cli: the GetoptLong array for this commandline option
|
74
|
+
#
|
75
|
+
# :label: The lable for the value when when prompting for input
|
76
|
+
# or showing formatted details of the pkg.
|
77
|
+
#
|
78
|
+
# :display_conversion: A proc that converts the internally-used form of a value
|
79
|
+
# to something more human-readable
|
80
|
+
# (e.g. "none" instead of an empty string for a nil value)
|
81
|
+
#
|
82
|
+
# :get: the get_ method from D3::Admin::Interactive that is used to prompt for
|
83
|
+
# a new value for the attribute.
|
84
|
+
#
|
85
|
+
# :unsetable: This option can take "none" or "n" to set its value to nil
|
86
|
+
#
|
87
|
+
# :validate: the method from D3::Admin::Validate used to validate the
|
88
|
+
# value being provided and convert it to its internally-used form
|
89
|
+
#
|
90
|
+
#
|
91
|
+
OPTIONS = {
|
62
92
|
|
63
|
-
#
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
93
|
+
# General
|
94
|
+
help: {
|
95
|
+
default: nil,
|
96
|
+
cli: ['--help', '-h', GetoptLong::NO_ARGUMENT],
|
97
|
+
label: 'View help',
|
98
|
+
display_conversion: DISPLAY_TRUE_FALSE,
|
99
|
+
get: nil,
|
100
|
+
validate: nil
|
101
|
+
},
|
102
|
+
extended_help: {
|
103
|
+
default: nil,
|
104
|
+
cli: ['--extended-help', '-H', GetoptLong::NO_ARGUMENT],
|
105
|
+
label: 'View extended help',
|
106
|
+
display_conversion: DISPLAY_TRUE_FALSE,
|
107
|
+
get: nil,
|
108
|
+
validate: nil
|
109
|
+
},
|
110
|
+
walkthru: {
|
111
|
+
default: nil,
|
112
|
+
cli: ['--walkthru', '-w', GetoptLong::NO_ARGUMENT],
|
113
|
+
label: 'Walk-through',
|
114
|
+
display_conversion: DISPLAY_TRUE_FALSE,
|
115
|
+
get: nil,
|
116
|
+
validate: nil
|
117
|
+
},
|
118
|
+
auto_confirm: {
|
119
|
+
default: nil,
|
120
|
+
cli: ['--auto-confirm', '-a', GetoptLong::NO_ARGUMENT],
|
121
|
+
label: 'Auto-confirm',
|
122
|
+
display_conversion: DISPLAY_TRUE_FALSE,
|
123
|
+
get: nil,
|
124
|
+
validate: nil
|
125
|
+
},
|
126
|
+
admin: {
|
127
|
+
cli: ['--admin', GetoptLong::REQUIRED_ARGUMENT],
|
128
|
+
arg: 'admin',
|
129
|
+
help: 'who is doing something with d3?'
|
130
|
+
},
|
96
131
|
|
97
|
-
|
98
|
-
help: {
|
99
|
-
:default => nil,
|
100
|
-
:cli => [ '--help', "-h", GetoptLong::NO_ARGUMENT ],
|
101
|
-
:label => "View help",
|
102
|
-
:display_conversion => DISPLAY_TRUE_FALSE,
|
103
|
-
:get => nil,
|
104
|
-
:validate => nil
|
105
|
-
},
|
106
|
-
extended_help: {
|
107
|
-
:default => nil,
|
108
|
-
:cli => [ '--extended-help','-H', GetoptLong::NO_ARGUMENT ],
|
109
|
-
:label => "View extended help",
|
110
|
-
:display_conversion => DISPLAY_TRUE_FALSE,
|
111
|
-
:get => nil,
|
112
|
-
:validate => nil
|
113
|
-
},
|
114
|
-
walkthru: {
|
115
|
-
:default => nil,
|
116
|
-
:cli => [ '--walkthru','-w', GetoptLong::NO_ARGUMENT ],
|
117
|
-
:label => "Walk-through",
|
118
|
-
:display_conversion => DISPLAY_TRUE_FALSE,
|
119
|
-
:get => nil,
|
120
|
-
:validate => nil
|
121
|
-
},
|
122
|
-
auto_confirm: {
|
123
|
-
:default => nil,
|
124
|
-
:cli => [ '--auto-confirm','-a', GetoptLong::NO_ARGUMENT ],
|
125
|
-
:label => "Auto-confirm",
|
126
|
-
:display_conversion => DISPLAY_TRUE_FALSE,
|
127
|
-
:get => nil,
|
128
|
-
:validate => nil
|
129
|
-
},
|
130
|
-
admin: {
|
131
|
-
:cli => ['--admin', GetoptLong::REQUIRED_ARGUMENT ],
|
132
|
-
:arg => 'admin',
|
133
|
-
:help => "who is doing something with d3?"
|
134
|
-
},
|
132
|
+
# Package Identification: Add/Edit/Info/Delete
|
135
133
|
|
136
|
-
|
134
|
+
package_name: {
|
135
|
+
default: nil,
|
136
|
+
cli: ['--package-name', '-n', GetoptLong::REQUIRED_ARGUMENT],
|
137
|
+
label: 'JSS Package Name',
|
138
|
+
display_conversion: nil,
|
139
|
+
get: :get_package_name,
|
140
|
+
validate: :validate_package_name
|
141
|
+
},
|
142
|
+
filename: {
|
143
|
+
default: nil,
|
144
|
+
cli: ['--filename', '-f', GetoptLong::REQUIRED_ARGUMENT],
|
145
|
+
label: 'Dist. Point Filename',
|
146
|
+
display_conversion: nil,
|
147
|
+
get: :get_filename,
|
148
|
+
validate: :validate_filename
|
149
|
+
},
|
137
150
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
151
|
+
# Add
|
152
|
+
import: {
|
153
|
+
default: nil,
|
154
|
+
cli: ['--import', '-i', GetoptLong::OPTIONAL_ARGUMENT],
|
155
|
+
label: 'Import existing JSS package',
|
156
|
+
display_conversion: nil,
|
157
|
+
get: :get_jss_package_for_import,
|
158
|
+
validate: :validate_package_for_import
|
159
|
+
},
|
160
|
+
no_inherit: {
|
161
|
+
default: nil,
|
162
|
+
cli: ['--no-inherit', '-I', GetoptLong::NO_ARGUMENT],
|
163
|
+
label: 'Do not inherit from older pacakge',
|
164
|
+
display_conversion: DISPLAY_TRUE_FALSE,
|
165
|
+
get: nil,
|
166
|
+
validate: nil
|
167
|
+
},
|
168
|
+
source_path: {
|
169
|
+
default: nil,
|
170
|
+
cli: ['--source-path', '-s', GetoptLong::REQUIRED_ARGUMENT],
|
171
|
+
label: 'Source path',
|
172
|
+
display_conversion: DISPLAY_DFT_REQUIRED,
|
173
|
+
get: :get_source_path,
|
174
|
+
validate: :validate_source_path
|
175
|
+
},
|
176
|
+
package_build_type: {
|
177
|
+
default: DFT_PKG_TYPE,
|
178
|
+
cli: ['--dmg', GetoptLong::NO_ARGUMENT],
|
179
|
+
label: 'Package build type',
|
180
|
+
display_conversion: DISPLAY_PKG_TYPE,
|
181
|
+
get: :get_package_build_type,
|
182
|
+
validate: :validate_package_build_type
|
183
|
+
},
|
184
|
+
signing_identity: {
|
185
|
+
default: nil,
|
186
|
+
cli: ['--signing-id', GetoptLong::NO_ARGUMENT],
|
187
|
+
label: 'Package signing identity',
|
188
|
+
display_conversion: nil,
|
189
|
+
get: :get_signing_identity,
|
190
|
+
validate: :validate_signing_idenitity
|
191
|
+
},
|
192
|
+
signing_options: {
|
193
|
+
default: nil,
|
194
|
+
cli: ['--signing-opts', GetoptLong::NO_ARGUMENT],
|
195
|
+
label: 'Signing arguments and options',
|
196
|
+
display_conversion: nil,
|
197
|
+
get: :get_signing_options,
|
198
|
+
validate: :validate_signing_options
|
199
|
+
},
|
200
|
+
pkg_preserve_owners: {
|
201
|
+
default: nil,
|
202
|
+
cli: ['--preserve-owners', GetoptLong::NO_ARGUMENT],
|
203
|
+
label: 'Preserve ownership in .pkg',
|
204
|
+
display_conversion: DISPLAY_TRUE_FALSE,
|
205
|
+
get: :get_pkg_preserve_owners,
|
206
|
+
validate: :validate_yes_no
|
207
|
+
},
|
208
|
+
pkg_identifier: {
|
209
|
+
default: nil,
|
210
|
+
cli: ['--pkg-id', '-p', GetoptLong::REQUIRED_ARGUMENT],
|
211
|
+
label: 'Package identifier prefix',
|
212
|
+
display_conversion: nil,
|
213
|
+
get: :get_pkg_identifier,
|
214
|
+
validate: :validate_package_identifier
|
215
|
+
},
|
216
|
+
workspace: {
|
217
|
+
default: DFT_WORKSPACE,
|
218
|
+
cli: ['--workspace', '-W', GetoptLong::REQUIRED_ARGUMENT],
|
219
|
+
label: 'Package build workspace',
|
220
|
+
display_conversion: nil,
|
221
|
+
get: :get_workspace,
|
222
|
+
validate: :validate_workspace
|
223
|
+
},
|
154
224
|
|
155
|
-
|
225
|
+
# Add/Edit
|
226
|
+
version: {
|
227
|
+
default: '1',
|
228
|
+
cli: ['--version', '-v', GetoptLong::REQUIRED_ARGUMENT],
|
229
|
+
label: 'Version',
|
230
|
+
display_conversion: DISPLAY_DFT_REQUIRED,
|
231
|
+
get: :get_version,
|
232
|
+
validate: :validate_version
|
233
|
+
},
|
234
|
+
revision: {
|
235
|
+
default: 1,
|
236
|
+
cli: ['--revision', '-r', GetoptLong::REQUIRED_ARGUMENT],
|
237
|
+
label: 'Revision',
|
238
|
+
display_conversion: DISPLAY_DFT_REQUIRED,
|
239
|
+
get: :get_revision,
|
240
|
+
validate: :validate_revision
|
241
|
+
},
|
242
|
+
category: {
|
243
|
+
default: D3::CONFIG.jss_default_pkg_category,
|
244
|
+
cli: ['--category', '-C', GetoptLong::REQUIRED_ARGUMENT],
|
245
|
+
label: 'Category',
|
246
|
+
display_conversion: nil,
|
247
|
+
get: :get_category,
|
248
|
+
unsetable: true,
|
249
|
+
validate: :validate_category
|
250
|
+
},
|
251
|
+
oses: {
|
252
|
+
default: nil,
|
253
|
+
cli: ['--oses', '-o', GetoptLong::REQUIRED_ARGUMENT],
|
254
|
+
label: 'Limited to OSes',
|
255
|
+
display_conversion: DISPLAY_COMMA_SEP_LIST,
|
256
|
+
get: :get_oses,
|
257
|
+
unsetable: true,
|
258
|
+
validate: :validate_oses
|
259
|
+
},
|
260
|
+
cpu_type: {
|
261
|
+
default: nil,
|
262
|
+
cli: ['--cpu_type', '-c', GetoptLong::REQUIRED_ARGUMENT],
|
263
|
+
label: 'Limited to CPU type',
|
264
|
+
display_conversion: DISPLAY_DFT_NONE,
|
265
|
+
get: :get_cpu_type,
|
266
|
+
unsetable: true,
|
267
|
+
validate: :validate_cpu_type
|
268
|
+
},
|
269
|
+
reboot: {
|
270
|
+
default: false,
|
271
|
+
cli: ['--reboot', '-R', GetoptLong::OPTIONAL_ARGUMENT],
|
272
|
+
label: 'Needs Reboot',
|
273
|
+
display_conversion: DISPLAY_TRUE_FALSE,
|
274
|
+
get: :get_reboot,
|
275
|
+
validate: :validate_yes_no
|
276
|
+
},
|
277
|
+
removable: {
|
278
|
+
default: true,
|
279
|
+
cli: ['--removable', '-u', GetoptLong::OPTIONAL_ARGUMENT],
|
280
|
+
label: 'Uninstallable',
|
281
|
+
display_conversion: DISPLAY_TRUE_FALSE,
|
282
|
+
get: :get_removable,
|
283
|
+
validate: :validate_yes_no
|
284
|
+
},
|
285
|
+
remove_first: {
|
286
|
+
default: false,
|
287
|
+
cli: ['--remove-first', '-F', GetoptLong::OPTIONAL_ARGUMENT],
|
288
|
+
label: 'Uninstalls older installs',
|
289
|
+
display_conversion: DISPLAY_TRUE_FALSE,
|
290
|
+
get: :get_remove_first,
|
291
|
+
validate: :validate_yes_no
|
292
|
+
},
|
293
|
+
prohibiting_processes: {
|
294
|
+
default: nil,
|
295
|
+
cli: ['--prohibiting-processes', '--prohibiting-process', '-x', GetoptLong::REQUIRED_ARGUMENT],
|
296
|
+
label: 'Installation prohibited by processes matching',
|
297
|
+
display_conversion: DISPLAY_COMMA_SEP_LIST,
|
298
|
+
get: :get_prohibiting_processes,
|
299
|
+
unsetable: true,
|
300
|
+
validate: :validate_prohibiting_processes,
|
301
|
+
compare: proc { |o, n| o.to_a.sort == n.to_a.sort }
|
302
|
+
},
|
303
|
+
auto_groups: {
|
304
|
+
default: nil,
|
305
|
+
cli: ['--auto-groups', '-g', GetoptLong::REQUIRED_ARGUMENT],
|
306
|
+
label: 'Auto installed for groups',
|
307
|
+
display_conversion: DISPLAY_COMMA_SEP_LIST,
|
308
|
+
get: :get_auto_groups,
|
309
|
+
validate: :validate_auto_groups,
|
310
|
+
unsetable: true,
|
311
|
+
compare: proc { |o, n| o.to_a.sort == n.to_a.sort }
|
312
|
+
},
|
313
|
+
excluded_groups: {
|
314
|
+
default: nil,
|
315
|
+
cli: ['--excluded-groups', '-G', GetoptLong::REQUIRED_ARGUMENT],
|
316
|
+
label: 'Excluded for groups',
|
317
|
+
display_conversion: DISPLAY_COMMA_SEP_LIST,
|
318
|
+
get: :get_excluded_groups,
|
319
|
+
validate: :validate_excluded_groups,
|
320
|
+
unsetable: true,
|
321
|
+
compare: proc { |o, n| o.to_a.sort == n.to_a.sort }
|
322
|
+
},
|
323
|
+
pre_install: {
|
324
|
+
default: nil,
|
325
|
+
cli: ['--pre-install', '-e', GetoptLong::REQUIRED_ARGUMENT],
|
326
|
+
label: 'Pre-install script',
|
327
|
+
display_conversion: DISPLAY_DFT_NONE,
|
328
|
+
get: :get_pre_install_script,
|
329
|
+
unsetable: true,
|
330
|
+
validate: :validate_pre_install_script
|
331
|
+
},
|
332
|
+
post_install: {
|
333
|
+
default: nil,
|
334
|
+
cli: ['--post-install', '-t', GetoptLong::REQUIRED_ARGUMENT],
|
335
|
+
label: 'Post-install script',
|
336
|
+
display_conversion: DISPLAY_DFT_NONE,
|
337
|
+
get: :get_post_install_script,
|
338
|
+
unsetable: true,
|
339
|
+
validate: :validate_post_install_script
|
340
|
+
},
|
341
|
+
pre_remove: {
|
342
|
+
default: nil,
|
343
|
+
cli: ['--pre-remove', '-E', GetoptLong::REQUIRED_ARGUMENT],
|
344
|
+
label: 'Pre-uninstall script',
|
345
|
+
display_conversion: DISPLAY_DFT_NONE,
|
346
|
+
get: :get_pre_remove_script,
|
347
|
+
unsetable: true,
|
348
|
+
validate: :validate_pre_remove_script
|
349
|
+
},
|
350
|
+
post_remove: {
|
351
|
+
default: nil,
|
352
|
+
cli: ['--post-remove', '-T', GetoptLong::REQUIRED_ARGUMENT],
|
353
|
+
label: 'Post-uninstall script',
|
354
|
+
display_conversion: DISPLAY_DFT_NONE,
|
355
|
+
get: :get_post_remove_script,
|
356
|
+
unsetable: true,
|
357
|
+
validate: :validate_post_remove_script
|
358
|
+
},
|
359
|
+
expiration: {
|
360
|
+
default: DFT_EXPIRATION,
|
361
|
+
cli: ['--expiration', '-X', GetoptLong::REQUIRED_ARGUMENT],
|
362
|
+
label: 'Expiration',
|
363
|
+
display_conversion: nil,
|
364
|
+
get: :get_expiration,
|
365
|
+
unsetable: true,
|
366
|
+
validate: :validate_expiration
|
367
|
+
},
|
368
|
+
expiration_paths: {
|
369
|
+
default: nil,
|
370
|
+
cli: ['--expiration-path', '--expiration-paths', '-P', GetoptLong::REQUIRED_ARGUMENT],
|
371
|
+
label: 'Expiration Path(s)',
|
372
|
+
display_conversion: D3::Database::ARRAY_OF_PATHNAMES_TO_COMMA_STRING,
|
373
|
+
get: :get_expiration_paths,
|
374
|
+
unsetable: true,
|
375
|
+
validate: :validate_expiration_paths,
|
376
|
+
compare: proc { |o, n| o.to_a.sort == n.to_a.sort }
|
377
|
+
},
|
378
|
+
description: {
|
379
|
+
default: '',
|
380
|
+
cli: ['--description', '-d', GetoptLong::REQUIRED_ARGUMENT],
|
381
|
+
label: 'Description',
|
382
|
+
display_conversion: proc { |v| "\n----\n#{v.to_s.gsub("\r", "\n")}\n----" },
|
383
|
+
get: :get_description,
|
384
|
+
unsetable: true,
|
385
|
+
validate: nil
|
386
|
+
},
|
156
387
|
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
:default => nil,
|
167
|
-
:cli => [ '--no-inherit', "-I", GetoptLong::NO_ARGUMENT ],
|
168
|
-
:label => "Do not inherit from older pacakge",
|
169
|
-
:display_conversion => DISPLAY_TRUE_FALSE,
|
170
|
-
:get => nil,
|
171
|
-
:validate => nil
|
172
|
-
},
|
173
|
-
source_path: {
|
174
|
-
:default => nil,
|
175
|
-
:cli => [ '--source-path', '-s', GetoptLong::REQUIRED_ARGUMENT ],
|
176
|
-
:label => "Source path",
|
177
|
-
:display_conversion => DISPLAY_DFT_REQUIRED,
|
178
|
-
:get => :get_source_path,
|
179
|
-
:validate => :validate_source_path
|
180
|
-
},
|
181
|
-
package_build_type: {
|
182
|
-
:default => DFT_PKG_TYPE,
|
183
|
-
:cli => [ '--dmg', GetoptLong::NO_ARGUMENT ],
|
184
|
-
:label => "Package build type",
|
185
|
-
:display_conversion => DISPLAY_PKG_TYPE,
|
186
|
-
:get => :get_package_build_type,
|
187
|
-
:validate => :validate_package_build_type
|
188
|
-
},
|
189
|
-
pkg_preserve_owners: {
|
190
|
-
:default => nil,
|
191
|
-
:cli => [ '--preserve-owners', GetoptLong::NO_ARGUMENT ],
|
192
|
-
:label => "Preserve ownership in .pkg",
|
193
|
-
:display_conversion => DISPLAY_TRUE_FALSE,
|
194
|
-
:get => :get_pkg_preserve_owners,
|
195
|
-
:validate => :validate_yes_no
|
196
|
-
},
|
197
|
-
pkg_identifier: {
|
198
|
-
:default => nil,
|
199
|
-
:cli => [ '--pkg-id', '-p', GetoptLong::REQUIRED_ARGUMENT ],
|
200
|
-
:label => "Package identifier prefix",
|
201
|
-
:display_conversion => nil,
|
202
|
-
:get => :get_pkg_identifier,
|
203
|
-
:validate => :validate_package_identifier
|
204
|
-
},
|
205
|
-
workspace: {
|
206
|
-
:default => DFT_WORKSPACE,
|
207
|
-
:cli => [ '--workspace', '-W', GetoptLong::REQUIRED_ARGUMENT ],
|
208
|
-
:label => "Package build workspace",
|
209
|
-
:display_conversion => nil,
|
210
|
-
:get => :get_workspace,
|
211
|
-
:validate => :validate_workspace
|
212
|
-
},
|
388
|
+
# Search and Report
|
389
|
+
status: {
|
390
|
+
default: nil,
|
391
|
+
cli: ['--status', '-S', GetoptLong::REQUIRED_ARGUMENT],
|
392
|
+
label: 'Status for search and report',
|
393
|
+
display_conversion: DISPLAY_LIST_TYPE,
|
394
|
+
get: :get_scoped_groups,
|
395
|
+
validate: :validate_scoped_groups
|
396
|
+
},
|
213
397
|
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
},
|
223
|
-
revision: {
|
224
|
-
:default => 1,
|
225
|
-
:cli => [ '--revision', '-r', GetoptLong::REQUIRED_ARGUMENT ],
|
226
|
-
:label => "Revision",
|
227
|
-
:display_conversion => DISPLAY_DFT_REQUIRED,
|
228
|
-
:get => :get_revision,
|
229
|
-
:validate => :validate_revision
|
230
|
-
},
|
231
|
-
category: {
|
232
|
-
:default => D3::CONFIG.jss_default_pkg_category,
|
233
|
-
:cli => [ '--category', '-C', GetoptLong::REQUIRED_ARGUMENT ],
|
234
|
-
:label => "Category",
|
235
|
-
:display_conversion => nil,
|
236
|
-
:get => :get_category,
|
237
|
-
:unsetable => true,
|
238
|
-
:validate => :validate_category
|
239
|
-
},
|
240
|
-
oses: {
|
241
|
-
:default => nil,
|
242
|
-
:cli => [ '--oses', '-o', GetoptLong::REQUIRED_ARGUMENT ],
|
243
|
-
:label => "Limited to OS's",
|
244
|
-
:display_conversion => DISPLAY_COMMA_SEP_LIST,
|
245
|
-
:get => :get_oses,
|
246
|
-
:unsetable => true,
|
247
|
-
:validate => :validate_oses
|
248
|
-
},
|
249
|
-
cpu_type: {
|
250
|
-
:default => nil,
|
251
|
-
:cli => [ '--cpu_type', '-c', GetoptLong::REQUIRED_ARGUMENT ],
|
252
|
-
:label => "Limited to CPU type",
|
253
|
-
:display_conversion => DISPLAY_DFT_NONE,
|
254
|
-
:get => :get_cpu_type,
|
255
|
-
:unsetable => true,
|
256
|
-
:validate => :validate_cpu_type
|
257
|
-
},
|
258
|
-
reboot: {
|
259
|
-
:default => false,
|
260
|
-
:cli => [ '--reboot', '-R', GetoptLong::OPTIONAL_ARGUMENT ],
|
261
|
-
:label => "Needs Reboot",
|
262
|
-
:display_conversion => DISPLAY_TRUE_FALSE,
|
263
|
-
:get => :get_reboot,
|
264
|
-
:validate => :validate_yes_no
|
265
|
-
},
|
266
|
-
removable: {
|
267
|
-
:default => true,
|
268
|
-
:cli => [ '--removable', '-u', GetoptLong::OPTIONAL_ARGUMENT ],
|
269
|
-
:label => "Uninstallable",
|
270
|
-
:display_conversion => DISPLAY_TRUE_FALSE,
|
271
|
-
:get => :get_removable,
|
272
|
-
:validate => :validate_yes_no
|
273
|
-
},
|
274
|
-
remove_first: {
|
275
|
-
:default => false,
|
276
|
-
:cli => [ '--remove-first', '-F', GetoptLong::OPTIONAL_ARGUMENT ],
|
277
|
-
:label => "Uninstalls older installs",
|
278
|
-
:display_conversion => DISPLAY_TRUE_FALSE,
|
279
|
-
:get => :get_remove_first,
|
280
|
-
:validate => :validate_yes_no
|
281
|
-
},
|
282
|
-
prohibiting_processes: {
|
283
|
-
:default => nil,
|
284
|
-
:cli => [ '--prohibiting-processes', '--prohibiting-process', '-x', GetoptLong::REQUIRED_ARGUMENT ],
|
285
|
-
:label => "Installation prohibited by processes matching",
|
286
|
-
:display_conversion => DISPLAY_COMMA_SEP_LIST,
|
287
|
-
:get => :get_prohibiting_processes,
|
288
|
-
:unsetable => true,
|
289
|
-
:validate => :validate_prohibiting_processes,
|
290
|
-
:compare => Proc.new{|o,n| o.to_a.sort == n.to_a.sort}
|
291
|
-
},
|
292
|
-
auto_groups: {
|
293
|
-
:default => nil,
|
294
|
-
:cli => [ '--auto-groups', '-g', GetoptLong::REQUIRED_ARGUMENT ],
|
295
|
-
:label => "Auto installed for groups",
|
296
|
-
:display_conversion => DISPLAY_COMMA_SEP_LIST,
|
297
|
-
:get => :get_auto_groups,
|
298
|
-
:validate => :validate_auto_groups,
|
299
|
-
:unsetable => true,
|
300
|
-
:compare => Proc.new{|o,n| o.to_a.sort == n.to_a.sort}
|
301
|
-
},
|
302
|
-
excluded_groups: {
|
303
|
-
:default => nil,
|
304
|
-
:cli => [ '--excluded-groups', '-G', GetoptLong::REQUIRED_ARGUMENT ],
|
305
|
-
:label => "Excluded for groups",
|
306
|
-
:display_conversion => DISPLAY_COMMA_SEP_LIST,
|
307
|
-
:get => :get_excluded_groups,
|
308
|
-
:validate => :validate_excluded_groups,
|
309
|
-
:unsetable => true,
|
310
|
-
:compare => Proc.new{|o,n| o.to_a.sort == n.to_a.sort}
|
311
|
-
},
|
312
|
-
pre_install: {
|
313
|
-
:default => nil,
|
314
|
-
:cli => [ '--pre-install', '-e', GetoptLong::REQUIRED_ARGUMENT ],
|
315
|
-
:label => "Pre-install script",
|
316
|
-
:display_conversion => DISPLAY_DFT_NONE,
|
317
|
-
:get => :get_pre_install_script,
|
318
|
-
:unsetable => true,
|
319
|
-
:validate => :validate_pre_install_script
|
320
|
-
},
|
321
|
-
post_install: {
|
322
|
-
:default => nil,
|
323
|
-
:cli => [ '--post-install', '-t', GetoptLong::REQUIRED_ARGUMENT ],
|
324
|
-
:label => "Post-install script",
|
325
|
-
:display_conversion => DISPLAY_DFT_NONE,
|
326
|
-
:get => :get_post_install_script,
|
327
|
-
:unsetable => true,
|
328
|
-
:validate => :validate_post_install_script
|
329
|
-
},
|
330
|
-
pre_remove: {
|
331
|
-
:default => nil,
|
332
|
-
:cli => [ '--pre-remove', '-E', GetoptLong::REQUIRED_ARGUMENT ],
|
333
|
-
:label => "Pre-uninstall script",
|
334
|
-
:display_conversion => DISPLAY_DFT_NONE,
|
335
|
-
:get => :get_pre_remove_script,
|
336
|
-
:unsetable => true,
|
337
|
-
:validate => :validate_pre_remove_script
|
338
|
-
},
|
339
|
-
post_remove: {
|
340
|
-
:default => nil,
|
341
|
-
:cli => [ '--post-remove', '-T', GetoptLong::REQUIRED_ARGUMENT ],
|
342
|
-
:label => "Post-uninstall script",
|
343
|
-
:display_conversion => DISPLAY_DFT_NONE,
|
344
|
-
:get => :get_post_remove_script,
|
345
|
-
:unsetable => true,
|
346
|
-
:validate => :validate_post_remove_script
|
347
|
-
},
|
348
|
-
expiration: {
|
349
|
-
:default => DFT_EXPIRATION,
|
350
|
-
:cli => [ '--expiration', '-X', GetoptLong::REQUIRED_ARGUMENT ],
|
351
|
-
:label => "Expiration",
|
352
|
-
:display_conversion => nil,
|
353
|
-
:get => :get_expiration,
|
354
|
-
:unsetable => true,
|
355
|
-
:validate => :validate_expiration
|
356
|
-
},
|
357
|
-
expiration_paths: {
|
358
|
-
:default => nil,
|
359
|
-
:cli => [ '--expiration-path', '--expiration-paths', '-P', GetoptLong::REQUIRED_ARGUMENT ],
|
360
|
-
:label=> "Expiration Path(s)",
|
361
|
-
:display_conversion => D3::Database::ARRAY_OF_PATHNAMES_TO_COMMA_STRING ,
|
362
|
-
:get => :get_expiration_paths,
|
363
|
-
:unsetable => true,
|
364
|
-
:validate => :validate_expiration_paths,
|
365
|
-
:compare => Proc.new{|o,n| o.to_a.sort == n.to_a.sort}
|
366
|
-
},
|
367
|
-
description: {
|
368
|
-
:default => '',
|
369
|
-
:cli => [ '--description', '-d', GetoptLong::REQUIRED_ARGUMENT ],
|
370
|
-
:label => "Description",
|
371
|
-
:display_conversion => Proc.new{|v| "\n----\n#{v.to_s.gsub("\r", "\n")}\n----"},
|
372
|
-
:get => :get_description,
|
373
|
-
:unsetable => true,
|
374
|
-
:validate => nil
|
375
|
-
},
|
398
|
+
frozen: {
|
399
|
+
default: nil,
|
400
|
+
cli: ['--frozen', '-z', GetoptLong::NO_ARGUMENT],
|
401
|
+
label: 'Report frozen receipts',
|
402
|
+
display_conversion: DISPLAY_LIST_TYPE,
|
403
|
+
get: :get_scoped_groups,
|
404
|
+
validate: :validate_scoped_groups
|
405
|
+
},
|
376
406
|
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
},
|
407
|
+
queue: {
|
408
|
+
default: nil,
|
409
|
+
cli: ['--queue', '-q', GetoptLong::NO_ARGUMENT],
|
410
|
+
label: 'Report pending puppies rather than receipts',
|
411
|
+
display_conversion: DISPLAY_LIST_TYPE,
|
412
|
+
get: :get_scoped_groups,
|
413
|
+
validate: :validate_scoped_groups
|
414
|
+
},
|
386
415
|
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
416
|
+
computers: {
|
417
|
+
default: nil,
|
418
|
+
cli: ['--computers', GetoptLong::NO_ARGUMENT],
|
419
|
+
label: 'Report targets are computers, not basenames',
|
420
|
+
display_conversion: DISPLAY_LIST_TYPE,
|
421
|
+
get: :get_scoped_groups,
|
422
|
+
validate: :validate_scoped_groups
|
423
|
+
},
|
395
424
|
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
425
|
+
groups: {
|
426
|
+
default: nil,
|
427
|
+
cli: ['--groups', GetoptLong::NO_ARGUMENT],
|
428
|
+
label: 'Search targets are scoped groups, not basenames',
|
429
|
+
display_conversion: DISPLAY_LIST_TYPE,
|
430
|
+
get: :get_scoped_groups,
|
431
|
+
validate: :validate_scoped_groups
|
432
|
+
},
|
404
433
|
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
434
|
+
# Delete
|
435
|
+
keep_scripts: {
|
436
|
+
default: nil,
|
437
|
+
cli: ['--keep-scripts', GetoptLong::NO_ARGUMENT],
|
438
|
+
label: 'Keep associated scripts in Casper',
|
439
|
+
display_conversion: DISPLAY_TRUE_FALSE,
|
440
|
+
get: :get_keep_scripts,
|
441
|
+
validate: :validate_yes_no
|
442
|
+
},
|
443
|
+
keep_in_jss: {
|
444
|
+
default: nil,
|
445
|
+
cli: ['--keep-in-jss', GetoptLong::NO_ARGUMENT],
|
446
|
+
label: 'Keep the Casper package',
|
447
|
+
display_conversion: DISPLAY_TRUE_FALSE,
|
448
|
+
get: :get_keep_in_jss,
|
449
|
+
validate: :validate_yes_no
|
450
|
+
},
|
413
451
|
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
452
|
+
# debug
|
453
|
+
debug: {
|
454
|
+
default: false,
|
455
|
+
cli: ['--debug', '-D', GetoptLong::NO_ARGUMENT],
|
456
|
+
label: 'Be more verbose',
|
457
|
+
display_conversion: DISPLAY_TRUE_FALSE,
|
458
|
+
get: nil,
|
459
|
+
validate: :validate_yes_no
|
460
|
+
},
|
422
461
|
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
:get => :get_keep_scripts,
|
431
|
-
:validate => :validate_yes_no
|
432
|
-
},
|
433
|
-
keep_in_jss: {
|
434
|
-
:default => nil,
|
435
|
-
:cli => [ '--keep-in-jss', GetoptLong::NO_ARGUMENT ],
|
436
|
-
:label => "Keep the Casper package",
|
437
|
-
:display_conversion => DISPLAY_TRUE_FALSE,
|
438
|
-
:get => :get_keep_in_jss,
|
439
|
-
:validate => :validate_yes_no
|
440
|
-
},
|
441
|
-
|
442
|
-
# debug
|
443
|
-
debug: {
|
444
|
-
:default => false,
|
445
|
-
:cli => [ '--debug', '-D', GetoptLong::NO_ARGUMENT ],
|
446
|
-
:label => "Be more verbose",
|
447
|
-
:display_conversion => DISPLAY_TRUE_FALSE,
|
448
|
-
:get => nil,
|
449
|
-
:validate => :validate_yes_no
|
450
|
-
},
|
451
|
-
d3_version: {
|
452
|
-
:default => false,
|
453
|
-
:cli => [ '--d3-version', GetoptLong::NO_ARGUMENT ],
|
454
|
-
:label => "Display the version of d3admin and its libraries",
|
455
|
-
:display_conversion => DISPLAY_TRUE_FALSE,
|
456
|
-
:get => nil,
|
457
|
-
:validate => nil
|
458
|
-
}
|
462
|
+
d3_version: {
|
463
|
+
default: false,
|
464
|
+
cli: ['--d3-version', GetoptLong::NO_ARGUMENT],
|
465
|
+
label: 'Display the version of d3admin and its libraries',
|
466
|
+
display_conversion: DISPLAY_TRUE_FALSE,
|
467
|
+
get: nil,
|
468
|
+
validate: nil
|
459
469
|
}
|
470
|
+
}.freeze
|
471
|
+
|
472
|
+
end # module Admin
|
460
473
|
|
461
|
-
end # module admin
|
462
474
|
end # module D3
|