### Home Classes Methods

### In Files

- lib/phusion_passenger/standalone/package_runtime_command.rb

### Parent

Command

### Methods

- ::description
- ::require_libs
- #run

### Class/Module Index

Quicksearch

- PhusionPassenger
- PhusionPassenger::AbstractInstaller
- PhusionPassenger::AbstractInstaller::Abort
- PhusionPassenger::AbstractInstaller::CommandError
- PhusionPassenger::AdminTools
- PhusionPassenger::AdminTools::MemoryStats
- PhusionPassenger::AdminTools::MemoryStats::Process
- PhusionPassenger::AdminTools::ServerInstance
- PhusionPassenger::AdminTools::ServerInstance::CorruptedDirectoryError
- PhusionPassenger::AdminTools::ServerInstance::GenerationsAbsentError
- PhusionPassenger::AdminTools::ServerInstance::Group
- PhusionPassenger::AdminTools::ServerInstance::Process
- PhusionPassenger::AdminTools::ServerInstance::RoleDeniedError
- PhusionPassenger::AdminTools::ServerInstance::StaleDirectoryError
- PhusionPassenger::AdminTools::ServerInstance::Stats
- PhusionPassenger::AdminTools::ServerInstance::UnsupportedGenerationStructureVersionError
- PhusionPassenger::AnalyticsLogger
- PhusionPassenger::AnalyticsLogger::Connection
- PhusionPassenger::AnalyticsLogger::Lock
- PhusionPassenger::AnalyticsLogger::Log
- PhusionPassenger::ClassicRails
- PhusionPassenger::ClassicRails::CGIFixed
- PhusionPassenger::ClassicRails::ThreadHandlerExtension
- PhusionPassenger::ConsoleTextTemplate
- PhusionPassenger::DebugLogging
- PhusionPassenger::LoaderSharedHelpers
- PhusionPassenger::MessageChannel
- PhusionPassenger::MessageChannel::InvalidHashError
- PhusionPassenger::MessageClient
- PhusionPassenger::NativeSupportLoader
- PhusionPassenger::Packaging
- PhusionPassenger::PlatformInfo
- PhusionPassenger::PlatformInfo::ApacheDetector
- PhusionPassenger::PlatformInfo::ApacheDetector::Result
- PhusionPassenger::PlatformInfo::Depcheck
- PhusionPassenger::PlatformInfo::Depcheck::ConsoleRunner
- PhusionPassenger::PlatformInfo::Depcheck::Dependency
- PhusionPassenger::PlatformInfo::RuntimeError
- PhusionPassenger::Plugin
- PhusionPassenger::PreloaderSharedHelpers
- PhusionPassenger::Rack
- PhusionPassenger::Rack::OutOfBandGc
- PhusionPassenger::Rack::ThreadHandlerExtension
- PhusionPassenger::Rails3Extensions
- PhusionPassenger::Rails3Extensions::AnalyticsLogging
- PhusionPassenger::Rails3Extensions::AnalyticsLogging::ACExtension
- PhusionPassenger::Rails3Extensions::AnalyticsLogging::ASBenchmarkableExtension
- PhusionPassenger::Rails3Extensions::AnalyticsLogging::ExceptionLogger
- PhusionPassenger::RequestHandler
- PhusionPassenger::RequestHandler::ThreadHandler
- PhusionPassenger::RequestHandler::ThreadHandler::Interrupted
- PhusionPassenger::SharedConstants
- PhusionPassenger::Standalone
- PhusionPassenger::Standalone::AppFinder
- PhusionPassenger::Standalone::Command
- PhusionPassenger::Standalone::ConfigFile
- PhusionPassenger::Standalone::ConfigFile::DisallowedContextError
- PhusionPassenger::Standalone::HelpCommand
- PhusionPassenger::Standalone::Main
- PhusionPassenger::Standalone::PackageRuntimeCommand
- PhusionPassenger::Standalone::RuntimeInstaller
- PhusionPassenger::Standalone::RuntimeLocator
- PhusionPassenger::Standalone::StartCommand
- PhusionPassenger::Standalone::StatusCommand
- PhusionPassenger::Standalone::StopCommand
- PhusionPassenger::Standalone::Utils
- PhusionPassenger::Standalone::VersionCommand
- PhusionPassenger::Utils
- PhusionPassenger::Utils::AnsiColors
- PhusionPassenger::Utils::FileSystemWatcher
- PhusionPassenger::Utils::FileSystemWatcher::DirInfo
- PhusionPassenger::Utils::FileSystemWatcher::FileInfo
- PhusionPassenger::Utils::GeneratorTest
- PhusionPassenger::Utils::HostsFileParser
- PhusionPassenger::Utils::JSON
- PhusionPassenger::Utils::JSON::Generator
- PhusionPassenger::Utils::ParserTest
- PhusionPassenger::Utils::TeeInput
- PhusionPassenger::Utils::TmpIO
- PhusionPassenger::Utils::UnseekableSocket
- CommonLibraryBuilder
- Exception
- GC
- IO
- Object
- Signal

No matching classes.

# PhusionPassenger::Standalone::PackageRuntimeCommand

### Public Class Methods

description() click to toggle source

    # File lib/phusion_passenger/standalone/package_runtime_command.rb, line 28
    def self.description
            return "Package the Phusion Passenger Standalone runtime."
    end

require_libs() click to toggle source

    # File lib/phusion_passenger/standalone/package_runtime_command.rb, line 32
    def self.require_libs
            require 'phusion_passenger/platform_info/binary_compatibility'
            require 'phusion_passenger/standalone/runtime_installer'
    end

### Public Instance Methods

run() click to toggle source

    # File lib/phusion_passenger/standalone/package_runtime_command.rb, line 37
    def run
            destdir = File.expand_path("passenger-standalone")
            description =
                    "Package the Phusion Passenger Standalone runtime into the specified directory.\n" <<
                    "If DIRECTORY is not given then #{destdir} will be used."
            parse_options!("package [directory]", description) do |opts|
                    opts.on("--nginx-version VERSION", String,
                            wrap_desc("Nginx version to use as core (default: #{@options[:nginx_version]})")) do |value|
                            @options[:nginx_version] = value
                    end
                    opts.on("--nginx-tarball FILENAME", String,
                            wrap_desc("Use the given tarball instead of downloading from the Internet. " +
                                    "This tarball *must* match the version specified by --nginx-version!")) do |value|
                            @options[:nginx_tarball] = value
                    end
            end

            destdir     = File.expand_path(@args[0]) if @args[0]
            runtime_dir = "#{destdir}/#{PhusionPassenger::VERSION_STRING}"
            support_dir = "#{runtime_dir}/support-#{PlatformInfo.cxx_binary_compatibility_id}"
            ruby_dir    = "#{runtime_dir}/rubyext-#{PlatformInfo.ruby_extension_binary_compatibility_id}"
            nginx_dir   = "#{runtime_dir}/nginx-#{@options[:nginx_version]}-#{PlatformInfo.cxx_binary_compatibility_id}"

            sh "rm", "-rf", support_dir
            sh "rm", "-rf", nginx_dir

            installer = RuntimeInstaller.new(
                    :targets     => [:nginx, :ruby, :support_binaries],
                    :support_dir => support_dir,
                    :ruby_dir    => ruby_dir,
                    :nginx_dir   => nginx_dir,
                    :nginx_version     => @options[:nginx_version],
                    :nginx_tarball     => @options[:nginx_tarball],
                    :download_binaries => false)
            installer.run

            Dir.chdir(support_dir) do
                    support_dir_name = File.basename(support_dir)
                    puts "cd #{support_dir}"
                    sh "tar -c . | gzip --best > ../#{support_dir_name}.tar.gz"
            end
            Dir.chdir(ruby_dir) do
                    ruby_dir_name = File.basename(ruby_dir)
                    puts "cd #{ruby_dir}"
                    sh "tar -c . | gzip --best > ../#{ruby_dir_name}.tar.gz"
            end
            Dir.chdir(nginx_dir) do
                    nginx_dir_name   = File.basename(nginx_dir)
                    puts "cd #{nginx_dir}"
                    sh "tar -c . | gzip --best > ../#{nginx_dir_name}.tar.gz"
            end
            puts "cd #{runtime_dir}"
            sh "rm", "-rf", support_dir, ruby_dir, nginx_dir
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.