Module: Purple

Defined in:
lib/purple.rb,
lib/purple/osx.rb,
lib/purple/util.rb,
lib/purple/debian.rb,
lib/purple/getter.rb,
lib/purple/script.rb,
lib/purple/matches.rb,
lib/purple/process.rb,
lib/purple/makefile.rb,
lib/purple/platform.rb,
lib/purple/getter_cp.rb,
lib/purple/getter_curl.rb,
lib/purple/getter_wget.rb,
lib/purple/pkg_actions.rb

Defined Under Namespace

Modules: Getter, Matches, PackageActions, Platform, Run, Util Classes: MakefileMaven, PackageInfo, PurpleCabinet, PurpleFile, Script

Constant Summary collapse

PURPLE_FOLDER =
"#{ENV['HOME']}/purple"
PACKAGE_DESCRIPTION_TEMPLATE =
proc do |pkg| "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n  <key>IFPkgDescriptionTitle</key>\n  <string>\#{pkg.name}</string>\n  <key>IFPkgDescriptionVersion</key>\n  <string>\#{pkg.version}</string>\n</dict>\n</plist>\n"
end
PACKAGE_INFO_TEMPLATE =
proc do |pkg| "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n    <!--\n    <key></key>\n    <string></string>\n    ***\n    -->\n    <key>CFBundleGetInfoString</key>\n    <string>\#{pkg.info_string}</string>\n    <key>CFBundleIdentifier</key>\n    <string>\#{pkg.identifier}</string>\n    <key>CFBundleName</key>\n    <string>\#{pkg.name}</string>\n    <key>CFBundleShortVersionString</key>\n    <string>\#{pkg.version}</string>\n    <key>IFMajorVersion</key>\n    <integer>\#{pkg.major}</integer>\n    <key>IFMinorVersion</key>\n    <integer>\#{pkg.minor}</integer>\n    <key>IFPkgFlagAllowBackRev</key>\n    <false/>\n    <key>IFPkgFlagAuthorizationAction</key>\n    <string>AdminAuthorization</string>\n    <key>IFPkgFlagDefaultLocation</key>\n    <string>/</string>\n    <key>IFPkgFlagInstallFat</key>\n    <false/>\n    <key>IFPkgFlagIsRequired</key>\n    <false/>\n    <key>IFPkgFlagOverwritePermissions</key>\n    <true/>\n    <key>IFPkgFlagRelocatable</key>\n    <false/>\n    <key>IFPkgFlagRestartAction</key>\n    <string>NoRestart</string>\n    <key>IFPkgFlagRootVolumeOnly</key>\n    <true/>\n    <key>IFPkgFlagUpdateInstalledLanguages</key>\n    <false/>\n    <key>IFPkgFlagUseUserMask</key>\n    <false/>\n    <key>IFPkgFormatVersion</key>\n    <real>0.10000000149011612</real>\n</dict>\n</plist>\n"
end

Class Method Summary collapse

Class Method Details

.cabinet_from_url(url) ⇒ Object



225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
# File 'lib/purple.rb', line 225

def self.cabinet_from_url url

    cabinet = Purple::Script.parse("url \#{url.inspect}\npackage # {|pkg| pkg.infer }\ninfer_all\n"
    )
    cabinet.setup

    purple_script_path = File.join(cabinet.cabinet_dir, cabinet.name + '.purple')
    if FileTest.exist? purple_script_path
        raise 'purple script already exists'
    end

    Purple::Script.write cabinet, purple_script_path
    cabinet
end