# File lib/phusion_passenger/config/about_command.rb, line 57
        def run
                PhusionPassenger.require_passenger_lib 'platform_info'
                PhusionPassenger.require_passenger_lib 'platform_info/compiler'

                subcommand = @argv[0].to_s.dup
                # Compatibility with version <= 4.0.29: accept both
                # 'subcommand' and '--subcommand'.
                subcommand = "--#{subcommand}" if subcommand !~ /^--/

                case subcommand
                when "--root"
                        puts PhusionPassenger.source_root
                when "--ruby-libdir"
                        puts PhusionPassenger.ruby_libdir
                when "--includedir"
                        puts PhusionPassenger.include_dir
                when "--nginx-addon-dir"
                        puts PhusionPassenger.nginx_module_source_dir
                when "--nginx-libs"
                        puts "#{common_library.link_objects_as_string} #{PhusionPassenger.lib_dir}/common/libboost_oxt.a"
                when "--resourcesdir"
                        puts PhusionPassenger.resources_dir
                when "--compiled"
                        common_library.link_objects.each do |filename|
                                if !File.exist?(filename)
                                        exit 1
                                end
                        end
                        if File.exist?("#{PhusionPassenger.lib_dir}/common/libboost_oxt.a")
                                exit 0
                        else
                                exit 1
                        end
                when "--natively-packaged"
                        if PhusionPassenger.natively_packaged?
                                exit 0
                        else
                                exit 1
                        end
                when "--installed-from-release-package"
                        if PhusionPassenger.installed_from_release_package?
                                exit 0
                        else
                                exit 1
                        end
                when "--make-locations-ini"
                        if @argv[1] =~ /^--for-native-packaging-method=(.*)/
                                native_packaging_method = $1
                        else
                                native_packaging_method = nil
                        end
                        
                        puts "[locations]"
                        if native_packaging_method
                                puts "natively_packaged=true"
                                puts "native_packaging_method=#{native_packaging_method}"
                        else
                                puts "natively_packaged=#{PhusionPassenger.natively_packaged?}"
                                if PhusionPassenger.natively_packaged?
                                        puts "native_packaging_method=#{PhusionPassenger.native_packaging_method}"
                                end
                        end
                        PhusionPassenger::REQUIRED_LOCATIONS_INI_FIELDS.each do |field|
                                puts "#{field}=#{PhusionPassenger.send(field)}"
                        end
                        PhusionPassenger::OPTIONAL_LOCATIONS_INI_FIELDS.each do |field|
                                value = PhusionPassenger.send(field)
                                should_print = value &&
                                        (!ORIGINALLY_PACKAGED_LOCATIONS_INI_FIELDS.include?(field) || (
                                                PhusionPassenger.originally_packaged? &&
                                                !native_packaging_method
                                        ))
                                if should_print
                                        puts "#{field}=#{value}"
                                end
                        end
                when "--detect-apache2"
                        PhusionPassenger.require_passenger_lib 'platform_info/apache_detector'
                        detector = PhusionPassenger::PlatformInfo::ApacheDetector.new(STDOUT)
                        STDOUT.write(Utils::AnsiColors::DEFAULT_TERMINAL_COLOR)
                        STDOUT.flush
                        begin
                                detector.detect_all
                                detector.report
                        ensure
                                detector.finish
                                STDOUT.write(Utils::AnsiColors::RESET)
                                STDOUT.flush
                        end
                when "--ruby-command"
                        PhusionPassenger.require_passenger_lib 'platform_info/ruby'
                        ruby = PhusionPassenger::PlatformInfo.ruby_command
                        puts "passenger-config was invoked through the following Ruby interpreter:"
                        puts "  Command: #{ruby}"
                        STDOUT.write "  Version: "
                        STDOUT.flush
                        system("/bin/sh -c '#{ruby} -v'")
                        puts "  To use in Apache: PassengerRuby #{ruby}"
                        puts "  To use in Nginx : passenger_ruby #{ruby}"
                        puts "  To use with Standalone: #{ruby} #{PhusionPassenger.bin_dir}/passenger start"
                        puts

                        ruby = PhusionPassenger::PlatformInfo.find_command('ruby')
                        if ruby && !ruby.include?("rvm/rubies/")
                                # If this is an RVM Ruby executable then we don't show it. We want people to
                                # use the RVM wrapper scripts only.
                                puts "The following Ruby interpreter was found first in $PATH:"
                                puts "  Command: #{ruby}"
                                STDOUT.write "  Version: "
                                STDOUT.flush
                                system("/bin/sh -c '#{ruby} -v'")
                                puts "  To use in Apache: PassengerRuby #{ruby}"
                                puts "  To use in Nginx : passenger_ruby #{ruby}"
                                puts "  To use with Standalone: #{ruby} #{PhusionPassenger.bin_dir}/passenger start"
                        elsif !ruby.include?("rvm/rubies/")
                                puts "No Ruby interpreter found in $PATH."
                        end
                        puts
                        puts "## Notes for RVM users"
                        puts "Do you want to know which command to use for a different Ruby interpreter? 'rvm use' that Ruby interpreter, then re-run 'passenger-config --ruby-command'."
                when "--rubyext-compat-id"
                        PhusionPassenger.require_passenger_lib 'platform_info/binary_compatibility'
                        puts PhusionPassenger::PlatformInfo.ruby_extension_binary_compatibility_id
                when "--cxx-compat-id"
                        PhusionPassenger.require_passenger_lib 'platform_info/binary_compatibility'
                        puts PhusionPassenger::PlatformInfo.cxx_binary_compatibility_id
                when "--version"
                        puts PhusionPassenger::VERSION_STRING
                when "--help"
                        self.class.help
                else
                        self.class.help
                        exit 1
                end
        end