depot3 0.0.0a1 → 3.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +55 -1
- data/bin/d3 +323 -0
- data/bin/d3admin +1011 -0
- data/bin/d3helper +354 -0
- data/bin/puppytime +334 -0
- data/data/d3/com.pixar.d3.RepoMan.plist +23 -0
- data/data/d3/d3.conf.example +507 -0
- data/data/d3/d3RepoMan.app/Contents/Frameworks/libswiftAppKit.dylib +0 -0
- data/data/d3/d3RepoMan.app/Contents/Frameworks/libswiftCore.dylib +0 -0
- data/data/d3/d3RepoMan.app/Contents/Frameworks/libswiftCoreData.dylib +0 -0
- data/data/d3/d3RepoMan.app/Contents/Frameworks/libswiftCoreGraphics.dylib +0 -0
- data/data/d3/d3RepoMan.app/Contents/Frameworks/libswiftCoreImage.dylib +0 -0
- data/data/d3/d3RepoMan.app/Contents/Frameworks/libswiftDarwin.dylib +0 -0
- data/data/d3/d3RepoMan.app/Contents/Frameworks/libswiftDispatch.dylib +0 -0
- data/data/d3/d3RepoMan.app/Contents/Frameworks/libswiftFoundation.dylib +0 -0
- data/data/d3/d3RepoMan.app/Contents/Frameworks/libswiftObjectiveC.dylib +0 -0
- data/data/d3/d3RepoMan.app/Contents/Info.plist +56 -0
- data/data/d3/d3RepoMan.app/Contents/MacOS/d3RepoMan +0 -0
- data/data/d3/d3RepoMan.app/Contents/PkgInfo +1 -0
- data/data/d3/d3RepoMan.app/Contents/Resources/Base.lproj/MainMenu.nib +0 -0
- data/data/d3/d3RepoMan.app/Contents/Resources/last-foreground-times-template.plist +5 -0
- data/data/d3/d3RepoMan.app/Contents/_CodeSignature/CodeResources +214 -0
- data/data/d3/puppytime/ImageLicenses.txt +165 -0
- data/data/d3/puppytime/notification_image +1 -0
- data/data/d3/puppytime/opt_out_image +1 -0
- data/data/d3/puppytime/slideshow/2008-07-11_White_German_Shepherd_pup_chilling_at_the_Coker_Arboretum.jpg +0 -0
- data/data/d3/puppytime/slideshow/2009-04-21_APBT_pup_on_deck.jpg +0 -0
- data/data/d3/puppytime/slideshow/A_puppy_Yorkie.jpg +0 -0
- data/data/d3/puppytime/slideshow/Alert_Pug_Puppy.jpg +0 -0
- data/data/d3/puppytime/slideshow/Australian_Cattle_Dog_puppies_04.JPG +0 -0
- data/data/d3/puppytime/slideshow/Beagle_puppy_Cadet.jpg +0 -0
- data/data/d3/puppytime/slideshow/Bernese_Mountain_Dog.jpg +0 -0
- data/data/d3/puppytime/slideshow/Bloodhound_Puppy.jpg +0 -0
- data/data/d3/puppytime/slideshow/Boston_terrier_with_toy.jpg +0 -0
- data/data/d3/puppytime/slideshow/Boxer_puppy_fawn_portrai.jpg +0 -0
- data/data/d3/puppytime/slideshow/Caracal_kitten.jpg +0 -0
- data/data/d3/puppytime/slideshow/Chihuahua_&_Doberman_Pup.jpg +0 -0
- data/data/d3/puppytime/slideshow/Cuccioli_di_Margot_a_35_gg_Basenjis.jpg +0 -0
- data/data/d3/puppytime/slideshow/Dalmatian_puppy_03.jpg +0 -0
- data/data/d3/puppytime/slideshow/GoldenRetrieverPuppyDaisyParker.JPG +0 -0
- data/data/d3/puppytime/slideshow/Green_eyed_beige_Chihuahua.jpg +0 -0
- data/data/d3/puppytime/slideshow/Let_Sleeping_Dogs_Lie.jpg +0 -0
- data/data/d3/puppytime/slideshow/Meatball_-_French_Bulldog_Puppy.jpg +0 -0
- data/data/d3/puppytime/slideshow/Oola_-_9_weeks.jpg +0 -0
- data/data/d3/puppytime/slideshow/Pancho0008.JPG +0 -0
- data/data/d3/puppytime/slideshow/Pomeranian_orange-sable_Coco.jpg +0 -0
- data/data/d3/puppytime/slideshow/Pug_puppy_001.jpg +0 -0
- data/data/d3/puppytime/slideshow/Puggle_puppy_6_weeks.JPG +0 -0
- data/data/d3/puppytime/slideshow/Puli_kan.jpg +0 -0
- data/data/d3/puppytime/slideshow/Puppy_French_Bulldog.jpg +0 -0
- data/data/d3/puppytime/slideshow/Rocco_the_Bulldog.jpg +0 -0
- data/data/d3/puppytime/slideshow/Rottweiler_Face.jpg +0 -0
- data/data/d3/puppytime/slideshow/Saint_Bernard_puppy.jpg +0 -0
- data/data/d3/puppytime/slideshow/Scottish_froment.jpg +0 -0
- data/data/d3/puppytime/slideshow/Shar_pei_puppy_(age_2_months).jpg +0 -0
- data/data/d3/puppytime/slideshow/Shiba-Inu_beim_Spielen_im_Schnee.JPG +0 -0
- data/data/d3/puppytime/slideshow/Smooth-coat_Border_Collie_puppy..jpg +0 -0
- data/data/d3/puppytime/slideshow/Smooth_Dachshund_puppies.jpg +0 -0
- data/data/d3/puppytime/slideshow/Snow_dog.jpg +0 -0
- data/data/d3/puppytime/slideshow/Taylor_the_Pembroke_Welsh_Corgi.png +0 -0
- data/data/d3/puppytime/slideshow/Weim_Pups_001.jpg +0 -0
- data/data/d3/puppytime/slideshow/Westie_pups.jpg +0 -0
- data/data/d3/puppytime/slideshow/Yellow_Labrador_puppies_(4165737325).jpg +0 -0
- data/lib/d3/admin/add.rb +451 -0
- data/lib/d3/admin/auth.rb +470 -0
- data/lib/d3/admin/edit.rb +297 -0
- data/lib/d3/admin/help.rb +396 -0
- data/lib/d3/admin/interactive.rb +972 -0
- data/lib/d3/admin/options.rb +454 -0
- data/lib/d3/admin/prefs.rb +204 -0
- data/lib/d3/admin/report.rb +727 -0
- data/lib/d3/admin/state.rb +42 -0
- data/lib/d3/admin/validate.rb +413 -0
- data/lib/d3/admin.rb +42 -0
- data/lib/d3/basename.rb +217 -0
- data/lib/d3/client/auth.rb +108 -0
- data/lib/d3/client/class_methods.rb +766 -0
- data/lib/d3/client/class_variables.rb +47 -0
- data/lib/d3/client/cli.rb +187 -0
- data/lib/d3/client/environment.rb +134 -0
- data/lib/d3/client/help.rb +110 -0
- data/lib/d3/client/lists.rb +314 -0
- data/lib/d3/client/receipt.rb +1173 -0
- data/lib/d3/client.rb +45 -0
- data/lib/d3/configuration.rb +319 -0
- data/lib/d3/constants.rb +60 -0
- data/lib/d3/database.rb +488 -0
- data/lib/d3/exceptions.rb +44 -0
- data/lib/d3/log.rb +271 -0
- data/lib/d3/package/aliases.rb +80 -0
- data/lib/d3/package/attributes.rb +97 -0
- data/lib/d3/package/class_methods.rb +817 -0
- data/lib/d3/package/class_variables.rb +46 -0
- data/lib/d3/package/client_actions.rb +293 -0
- data/lib/d3/package/constants.rb +58 -0
- data/lib/d3/package/constructor.rb +191 -0
- data/lib/d3/package/getters.rb +164 -0
- data/lib/d3/package/mixins.rb +39 -0
- data/lib/d3/package/private_methods.rb +227 -0
- data/lib/d3/package/questions.rb +95 -0
- data/lib/d3/package/server_actions.rb +683 -0
- data/lib/d3/package/setters.rb +326 -0
- data/lib/d3/package/validate.rb +448 -0
- data/lib/d3/package.rb +51 -0
- data/lib/d3/puppytime/pending_puppy.rb +108 -0
- data/lib/d3/puppytime/puppy_queue.rb +274 -0
- data/lib/d3/puppytime.rb +68 -0
- data/lib/d3/state.rb +105 -0
- data/lib/d3/utility.rb +325 -0
- data/lib/d3/version.rb +1 -1
- metadata +162 -9
data/lib/d3/log.rb
ADDED
@@ -0,0 +1,271 @@
|
|
1
|
+
### Copyright 2016 Pixar
|
2
|
+
###
|
3
|
+
### Licensed under the Apache License, Version 2.0 (the "Apache License")
|
4
|
+
### with the following modification; you may not use this file except in
|
5
|
+
### compliance with the Apache License and the following modification to it:
|
6
|
+
### Section 6. Trademarks. is deleted and replaced with:
|
7
|
+
###
|
8
|
+
### 6. Trademarks. This License does not grant permission to use the trade
|
9
|
+
### names, trademarks, service marks, or product names of the Licensor
|
10
|
+
### and its affiliates, except as required to comply with Section 4(c) of
|
11
|
+
### the License and to reproduce the content of the NOTICE file.
|
12
|
+
###
|
13
|
+
### You may obtain a copy of the Apache License at
|
14
|
+
###
|
15
|
+
### http://www.apache.org/licenses/LICENSE-2.0
|
16
|
+
###
|
17
|
+
### Unless required by applicable law or agreed to in writing, software
|
18
|
+
### distributed under the Apache License with the above modification is
|
19
|
+
### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
20
|
+
### KIND, either express or implied. See the Apache License for the specific
|
21
|
+
### language governing permissions and limitations under the Apache License.
|
22
|
+
###
|
23
|
+
###
|
24
|
+
|
25
|
+
|
26
|
+
module D3
|
27
|
+
|
28
|
+
### Log a message to the d3 log, possibly sending it to stderr as well.
|
29
|
+
###
|
30
|
+
### The message will appear in the log based upon its severity level,
|
31
|
+
### and the current D3::Log.level. Any message more severe than the log level
|
32
|
+
### will be logged.
|
33
|
+
###
|
34
|
+
### The message will appear on stderr if the message severity is
|
35
|
+
### at or higher than the current @@verbosity. If the @@verbosity is :debug
|
36
|
+
### the messages to stderr will be prefixed with the message severity.
|
37
|
+
###
|
38
|
+
### In the d3 command, @@verbosity is controlled with the -v, -q and -d
|
39
|
+
### options
|
40
|
+
###
|
41
|
+
### See also D3::Log.log and the ruby Logger module.
|
42
|
+
### See also D3::verbosity=
|
43
|
+
###
|
44
|
+
### @param msg[String] the message to log
|
45
|
+
###
|
46
|
+
### @param severity[Symbol] the severity level of this message, defaults to
|
47
|
+
### D3::Log::DFT_LOG_LEVEL
|
48
|
+
###
|
49
|
+
### @return [void]
|
50
|
+
###
|
51
|
+
def self.log (msg, severity = D3::Log::DFT_LOG_LEVEL)
|
52
|
+
|
53
|
+
message_severity = D3::Log.check_level(severity)
|
54
|
+
|
55
|
+
# send to stderr if needed
|
56
|
+
if message_severity >= @@verbosity
|
57
|
+
if @@verbosity == D3::Log::LOG_LEVELS[:debug]
|
58
|
+
STDERR.puts "#{severity}: #{msg}"
|
59
|
+
else
|
60
|
+
STDERR.puts msg
|
61
|
+
end
|
62
|
+
end #
|
63
|
+
|
64
|
+
# can't write to the log unless we're super user
|
65
|
+
return unless JSS.superuser?
|
66
|
+
|
67
|
+
# send to the logger
|
68
|
+
D3::Log.instance.log msg, severity
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
### Log the lines of backtrace from the most recent exception
|
73
|
+
### but only if the current severity is :debug
|
74
|
+
def self.log_backtrace
|
75
|
+
return unless D3::LOG.level == :debug
|
76
|
+
$@.each{|line| D3.log " #{line}", :debug }
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
class Log
|
82
|
+
|
83
|
+
################# Mixin Modules #################
|
84
|
+
|
85
|
+
include Singleton
|
86
|
+
|
87
|
+
################# Class Constants #################
|
88
|
+
|
89
|
+
# The default log file
|
90
|
+
DFT_LOG_FILE = "/var/log/d3.log"
|
91
|
+
|
92
|
+
# the possible log severity levels
|
93
|
+
LOG_LEVELS = {
|
94
|
+
:debug => Logger::DEBUG,
|
95
|
+
:info => Logger::INFO,
|
96
|
+
:warn => Logger::WARN,
|
97
|
+
:error => Logger::ERROR,
|
98
|
+
:fatal => Logger::FATAL
|
99
|
+
}
|
100
|
+
|
101
|
+
# the default log level
|
102
|
+
DFT_LOG_LEVEL = LOG_LEVELS[:info]
|
103
|
+
|
104
|
+
# the default verbosity level (logs to stderr)
|
105
|
+
DFT_VERBOSITY = LOG_LEVELS[:warn]
|
106
|
+
|
107
|
+
# THe "program name" that appears in the logs.
|
108
|
+
# see #progname=
|
109
|
+
DFT_LOG_PROGNAME = "d3-module"
|
110
|
+
|
111
|
+
# timestamp format, this is 2015-02-15 13:02:34
|
112
|
+
DFT_LOG_TIME_FMT = "%Y-%m-%d %H:%M:%S"
|
113
|
+
|
114
|
+
|
115
|
+
|
116
|
+
################# Class Methods #################
|
117
|
+
|
118
|
+
### Return the numeric value of a log level
|
119
|
+
### or raise an exception if the level is invalid.
|
120
|
+
###
|
121
|
+
### @param level[Symbol, Integer] the level to check, should be one of the
|
122
|
+
### keys of LOG_LEVELS
|
123
|
+
###
|
124
|
+
### @return [integer] the numeric value of the log level
|
125
|
+
###
|
126
|
+
def self.check_level(level)
|
127
|
+
valid = true
|
128
|
+
case level
|
129
|
+
when Symbol
|
130
|
+
valid = false unless LOG_LEVELS.keys.include? level
|
131
|
+
value = LOG_LEVELS[level]
|
132
|
+
when Fixnum
|
133
|
+
valid = false unless LOG_LEVELS.values.include? level
|
134
|
+
value = level
|
135
|
+
else
|
136
|
+
valid = false
|
137
|
+
end #case
|
138
|
+
raise JSS::InvalidDataError, "Severity level must be one of :#{LOG_LEVELS.keys.join ', :'} OR #{LOG_LEVELS.values.join ', '}" unless valid
|
139
|
+
return value
|
140
|
+
end
|
141
|
+
|
142
|
+
################# Attribtues #################
|
143
|
+
|
144
|
+
# @return [Pathname] the logfile being written
|
145
|
+
attr_reader :log_file
|
146
|
+
|
147
|
+
# @return [Symbol] the current severity level of logging
|
148
|
+
attr_reader :level
|
149
|
+
|
150
|
+
# @return [String] the strftime format of the timestamps in the log
|
151
|
+
attr_reader :timestamp_format
|
152
|
+
|
153
|
+
# @return [String] the program name associated with a log entry
|
154
|
+
attr_reader :progname
|
155
|
+
|
156
|
+
################# Constructor #################
|
157
|
+
|
158
|
+
def initialize
|
159
|
+
|
160
|
+
# Set default values
|
161
|
+
@log_file = Pathname.new DFT_LOG_FILE
|
162
|
+
@level = DFT_LOG_LEVEL
|
163
|
+
@timestamp_format = DFT_LOG_TIME_FMT
|
164
|
+
@progname = DFT_LOG_PROGNAME
|
165
|
+
|
166
|
+
|
167
|
+
# Set values from config if available.
|
168
|
+
# @note: progname needs to be set by the prog using the module,
|
169
|
+
# e.g. d3, d3admin, d3helper
|
170
|
+
# not by the config
|
171
|
+
@log_file = Pathname.new(D3::CONFIG.log_file) if D3::CONFIG.log_file
|
172
|
+
@level = D3::CONFIG.log_level if D3::CONFIG.log_level
|
173
|
+
@timestamp_format = D3::CONFIG.log_timestamp_format if D3::CONFIG.log_timestamp_format
|
174
|
+
|
175
|
+
# the logger will be created when it's needed
|
176
|
+
@logger = nil
|
177
|
+
|
178
|
+
|
179
|
+
|
180
|
+
end # init
|
181
|
+
|
182
|
+
################# Public Instance Methods #################
|
183
|
+
|
184
|
+
### Access the logger, creating it if needed.
|
185
|
+
### We don't make it when the instance is created because it
|
186
|
+
### might want to write to a place we don't have permissions.
|
187
|
+
### So anything that uses it will call this to create it when
|
188
|
+
### its needed.
|
189
|
+
def the_logger
|
190
|
+
return @logger if @logger
|
191
|
+
# make logger if needed
|
192
|
+
unless @logger
|
193
|
+
@logger = Logger.new @log_file
|
194
|
+
set_format
|
195
|
+
end
|
196
|
+
@logger.level = D3::Log.check_level @level
|
197
|
+
return @logger
|
198
|
+
end
|
199
|
+
|
200
|
+
### Send a message to be logged
|
201
|
+
### If the severity is less severe than the current level,
|
202
|
+
### the message won't be written to the log.
|
203
|
+
###
|
204
|
+
### @param msg[String] the message to write to the log
|
205
|
+
###
|
206
|
+
### @param severity[Symbol] the severity of this message.
|
207
|
+
### If below the current log_level the message won't be written.
|
208
|
+
### Must be one of the keys of LOG_LEVELS. Defaults to :info.
|
209
|
+
###
|
210
|
+
### @param progname[String] the name of the program creating this msg.
|
211
|
+
### Defaults to the currently-set log_progname (see #log_progname=)
|
212
|
+
### or DFT_LOG_PROGNAME.
|
213
|
+
###
|
214
|
+
### @return [Boolean] the message was handled appropriately, or not
|
215
|
+
###
|
216
|
+
def log (msg, severity = DFT_LOG_LEVEL)
|
217
|
+
the_logger.add(D3::Log.check_level(severity), msg, @progname)
|
218
|
+
end
|
219
|
+
|
220
|
+
### Set a new severity-level for logging.
|
221
|
+
### Messages less severe than this won't be written to the log.
|
222
|
+
###
|
223
|
+
### @param new_level[Symbol] the new log level, must be one of the keys of D3::Log::LOG_LEVELS
|
224
|
+
###
|
225
|
+
### @return [void]
|
226
|
+
###
|
227
|
+
def level= (new_level)
|
228
|
+
the_logger.level = D3::Log.check_level(new_level)
|
229
|
+
@level = new_level
|
230
|
+
end
|
231
|
+
|
232
|
+
|
233
|
+
### Set a new program-name for log entries
|
234
|
+
###
|
235
|
+
### @param new_name[String] the new program name for log entries
|
236
|
+
###
|
237
|
+
### @return [void]
|
238
|
+
###
|
239
|
+
def progname= (new_name)
|
240
|
+
@progname = new_name.to_s
|
241
|
+
set_format
|
242
|
+
end
|
243
|
+
|
244
|
+
|
245
|
+
### Set a new timestamp format
|
246
|
+
###
|
247
|
+
### @param fmt[String] the new format, an strftime string.
|
248
|
+
###
|
249
|
+
### @return [void]
|
250
|
+
###
|
251
|
+
def timestamp_format= (new_format)
|
252
|
+
new_format = new_format.to_s
|
253
|
+
the_logger.datetime_format = new_format
|
254
|
+
@timestamp_format = new_format
|
255
|
+
end # timestamp_format=
|
256
|
+
|
257
|
+
private
|
258
|
+
|
259
|
+
### set up the log line format
|
260
|
+
def set_format
|
261
|
+
# set the line format
|
262
|
+
the_logger.formatter = proc do |severity, datetime, progname, msg|
|
263
|
+
"#{datetime.strftime @timestamp_format} #{progname} [#{$$}]: #{severity}: #{msg}\n"
|
264
|
+
end #
|
265
|
+
end
|
266
|
+
end # class Log
|
267
|
+
|
268
|
+
# the singleton instance of our logger
|
269
|
+
LOG = D3::Log.instance
|
270
|
+
end # module D3
|
271
|
+
|
@@ -0,0 +1,80 @@
|
|
1
|
+
### Copyright 2016 Pixar
|
2
|
+
###
|
3
|
+
### Licensed under the Apache License, Version 2.0 (the "Apache License")
|
4
|
+
### with the following modification; you may not use this file except in
|
5
|
+
### compliance with the Apache License and the following modification to it:
|
6
|
+
### Section 6. Trademarks. is deleted and replaced with:
|
7
|
+
###
|
8
|
+
### 6. Trademarks. This License does not grant permission to use the trade
|
9
|
+
### names, trademarks, service marks, or product names of the Licensor
|
10
|
+
### and its affiliates, except as required to comply with Section 4(c) of
|
11
|
+
### the License and to reproduce the content of the NOTICE file.
|
12
|
+
###
|
13
|
+
### You may obtain a copy of the Apache License at
|
14
|
+
###
|
15
|
+
### http://www.apache.org/licenses/LICENSE-2.0
|
16
|
+
###
|
17
|
+
### Unless required by applicable law or agreed to in writing, software
|
18
|
+
### distributed under the Apache License with the above modification is
|
19
|
+
### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
20
|
+
### KIND, either express or implied. See the Apache License for the specific
|
21
|
+
### language governing permissions and limitations under the Apache License.
|
22
|
+
###
|
23
|
+
###
|
24
|
+
|
25
|
+
|
26
|
+
module D3
|
27
|
+
class Package < JSS::Package
|
28
|
+
|
29
|
+
################# Method Aliases #################
|
30
|
+
|
31
|
+
### (intermixing them seems to make YARD documentation unhappy)
|
32
|
+
alias standard? standard
|
33
|
+
alias remove_first? remove_first
|
34
|
+
|
35
|
+
# aliases for getting the script names
|
36
|
+
alias pre_install pre_install_script_name
|
37
|
+
alias post_install post_install_script_name
|
38
|
+
alias pre_remove pre_remove_script_name
|
39
|
+
alias post_remove post_remove_script_name
|
40
|
+
|
41
|
+
|
42
|
+
alias pre_install_id pre_install_script_id
|
43
|
+
alias post_install_id post_install_script_id
|
44
|
+
alias pre_remove_id pre_remove_script_id
|
45
|
+
alias post_remove_id post_remove_script_id
|
46
|
+
|
47
|
+
|
48
|
+
# aliases for assigning scripts, since assignment methods
|
49
|
+
# can take ids, names, or paths
|
50
|
+
# clean these up someday!
|
51
|
+
alias pre_install_script= pre_install=
|
52
|
+
alias post_install_script= post_install=
|
53
|
+
alias pre_remove_script= pre_remove=
|
54
|
+
alias post_remove_script= post_remove=
|
55
|
+
|
56
|
+
alias pre_install_script_id= pre_install=
|
57
|
+
alias post_install_script_id= post_install=
|
58
|
+
alias pre_remove_script_id= pre_remove=
|
59
|
+
alias post_remove_script_id= post_remove=
|
60
|
+
|
61
|
+
alias pre_install_script_name= pre_install=
|
62
|
+
alias post_install_script_name= post_install=
|
63
|
+
alias pre_remove_script_name= pre_remove=
|
64
|
+
alias post_remove_script_name= post_remove=
|
65
|
+
|
66
|
+
|
67
|
+
alias release make_live
|
68
|
+
|
69
|
+
alias description notes
|
70
|
+
alias description= notes=
|
71
|
+
alias package_name name
|
72
|
+
alias package_name= name=
|
73
|
+
|
74
|
+
alias bom index
|
75
|
+
alias file_list installed_files
|
76
|
+
alias files installed_files
|
77
|
+
|
78
|
+
|
79
|
+
end # class Package
|
80
|
+
end # module D3
|
@@ -0,0 +1,97 @@
|
|
1
|
+
### Copyright 2016 Pixar
|
2
|
+
###
|
3
|
+
### Licensed under the Apache License, Version 2.0 (the "Apache License")
|
4
|
+
### with the following modification; you may not use this file except in
|
5
|
+
### compliance with the Apache License and the following modification to it:
|
6
|
+
### Section 6. Trademarks. is deleted and replaced with:
|
7
|
+
###
|
8
|
+
### 6. Trademarks. This License does not grant permission to use the trade
|
9
|
+
### names, trademarks, service marks, or product names of the Licensor
|
10
|
+
### and its affiliates, except as required to comply with Section 4(c) of
|
11
|
+
### the License and to reproduce the content of the NOTICE file.
|
12
|
+
###
|
13
|
+
### You may obtain a copy of the Apache License at
|
14
|
+
###
|
15
|
+
### http://www.apache.org/licenses/LICENSE-2.0
|
16
|
+
###
|
17
|
+
### Unless required by applicable law or agreed to in writing, software
|
18
|
+
### distributed under the Apache License with the above modification is
|
19
|
+
### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
20
|
+
### KIND, either express or implied. See the Apache License for the specific
|
21
|
+
### language governing permissions and limitations under the Apache License.
|
22
|
+
###
|
23
|
+
###
|
24
|
+
|
25
|
+
|
26
|
+
module D3
|
27
|
+
class Package < JSS::Package
|
28
|
+
################# Instance Attributes #################
|
29
|
+
|
30
|
+
### Note - I was tempted to set these up programmatically
|
31
|
+
### using the keys of the P_FIELDS hash.
|
32
|
+
### While that would make adding and removing field definitions
|
33
|
+
### simpler, in that changes would be automatically reflected here,
|
34
|
+
### It would also make the code less readable, more convoluted,
|
35
|
+
### harder to document, and the documentation harder to read.
|
36
|
+
### So here and in other places we're compromising DRY programming
|
37
|
+
### for more human-usable code.
|
38
|
+
###
|
39
|
+
|
40
|
+
### See also, the attributes mixed in from D3::Basename
|
41
|
+
|
42
|
+
### @return [Array<Hash>] the apple receipt data for the items installed by this pkg.
|
43
|
+
### When .[m]pkgs are installed, their identifiers and metadata are recorded in the OS's receipts database
|
44
|
+
### and are accessible via the pkgutil command. (e.g. pkgutil --pkg-info com.company.application). Storing it
|
45
|
+
### in the DB allows us to do uninstalls and other client tasks without needing to index the pkg in Casper.
|
46
|
+
### Each hash has these keys:
|
47
|
+
### - :apple_pkg_id => String
|
48
|
+
### - :version => String
|
49
|
+
### - :installed_kb => Integer
|
50
|
+
attr_reader :apple_receipt_data
|
51
|
+
|
52
|
+
### @return [Time] when was this package was added to d3
|
53
|
+
attr_reader :added_date
|
54
|
+
|
55
|
+
### @return [String,nil] the login name of the admin who added this packge to d3
|
56
|
+
attr_reader :added_by
|
57
|
+
|
58
|
+
### @return [Time,nil] when was this package made live in d3
|
59
|
+
attr_reader :release_date
|
60
|
+
|
61
|
+
### @return [String,nil] the login name of the admin who made it live
|
62
|
+
attr_reader :released_by
|
63
|
+
|
64
|
+
### @return [Boolean] does this pkg get installed automatically on all non-exluded clients?
|
65
|
+
attr_reader :standard
|
66
|
+
|
67
|
+
### @return [Array] a list of JSS::ComputerGroup names whose members get this
|
68
|
+
### package installed automatically
|
69
|
+
attr_reader :auto_groups
|
70
|
+
|
71
|
+
### @return [Array] a list of JSS::ComputerGroup names for whose members this
|
72
|
+
### package is not available without force
|
73
|
+
attr_reader :excluded_groups
|
74
|
+
|
75
|
+
### @return [Boolean] should any currently installed versions of this basename
|
76
|
+
### be uninstalled (if possible) before installing this package?
|
77
|
+
attr_reader :remove_first
|
78
|
+
|
79
|
+
### @return [Integer,nil] the JSS::Script id of the pre-install script, if any
|
80
|
+
attr_reader :pre_install_script_id
|
81
|
+
|
82
|
+
### @return [Integer,nil] the JSS::Script id of the post-install script, if any
|
83
|
+
attr_reader :post_install_script_id
|
84
|
+
|
85
|
+
### @return [Integer,nil] the JSS::Script id of the pre-remove script, if any
|
86
|
+
attr_reader :pre_remove_script_id
|
87
|
+
|
88
|
+
### @return [Integer,nil] the JSS::Script id of the post-remove script, if any
|
89
|
+
attr_reader :post_remove_script_id
|
90
|
+
|
91
|
+
### @return [Boolean] does this pkg exist in the d3 pkg table?
|
92
|
+
attr_reader :in_d3
|
93
|
+
|
94
|
+
### @return [Symbol] the current status of the pkg in d3
|
95
|
+
attr_reader :status
|
96
|
+
end # class Package
|
97
|
+
end # module D3
|