mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-09 15:37:56 -05:00
56 lines
1.7 KiB
Ruby
56 lines
1.7 KiB
Ruby
require 'package'
|
|
Dir["#{CREW_PACKAGES_PATH}/php*.rb"].each do |php_file|
|
|
next unless php_file =~ /php(\d+).rb/
|
|
|
|
php_name = File.basename(php_file, '.rb')
|
|
require_relative php_name
|
|
end
|
|
|
|
class Php < Package
|
|
description 'PHP is a popular general-purpose scripting language that is especially suited to web development.'
|
|
homepage 'http://www.php.net/'
|
|
key = 1
|
|
@php_versions = []
|
|
Dir["#{CREW_PACKAGES_PATH}/php*.rb"].each do |php_file|
|
|
next unless php_file =~ /php(\d+).rb/
|
|
|
|
php_name = File.basename(php_file, '.rb')
|
|
php_ver = Object.const_get(php_name.capitalize).version.to_s.gsub(/-(\d+)/, '')
|
|
@php_versions.push [key, php_name, php_ver]
|
|
@min_php_ver = php_ver if key == 1
|
|
@max_php_ver = php_ver
|
|
key += 1
|
|
end
|
|
version "#{@min_php_ver}-#{@max_php_ver}"
|
|
license 'PHP-3.01'
|
|
compatibility 'all'
|
|
|
|
is_fake
|
|
|
|
def self.preflight
|
|
major = `php -v 2> /dev/null | head -1 | cut -d' ' -f2 | cut -d'.' -f1`.chomp
|
|
minor = `php -v 2> /dev/null | head -1 | cut -d' ' -f2 | cut -d'.' -f2`.chomp
|
|
unless major.empty? && minor.empty?
|
|
puts "Php#{major}#{minor} already installed.".lightgreen
|
|
abort "Enter `crew remove php#{major}#{minor} && crew install php` to install a different version."
|
|
end
|
|
puts "\nSelect version:"
|
|
@php_versions.each do |php_ver|
|
|
puts "#{php_ver[0]} = PHP #{php_ver[2]}"
|
|
end
|
|
puts '0 = Cancel'
|
|
|
|
while (version = $stdin.gets.chomp.downcase.to_i)
|
|
version = 0 if version.negative? || version > @php_versions.length
|
|
key = version - 1
|
|
case version
|
|
when @php_versions[key][0]
|
|
depends_on @php_versions[key][1]
|
|
break
|
|
when 0
|
|
abort
|
|
end
|
|
end
|
|
end
|
|
end
|