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

Class Method Summary collapse

Class Method Details

.cabinet_from_url(url) ⇒ Object



218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
# File 'lib/purple.rb', line 218

def self.cabinet_from_url url

    cabinet = Purple::Script.parse(<<-EOS
        url #{url.inspect}
        package # {|pkg| pkg.infer }
        infer_all
    EOS
    )
    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