Module: Stable::Utils::PackageManager
- Defined in:
- lib/stable/utils/package_manager.rb
Overview
Cross-platform package manager utilities
Class Method Summary collapse
- .available? ⇒ Boolean
- .install_command(package) ⇒ Object
- .name ⇒ Object
- .service_start_command(service) ⇒ Object
Class Method Details
.available? ⇒ Boolean
36 37 38 39 40 41 42 43 44 |
# File 'lib/stable/utils/package_manager.rb', line 36 def available? pm = Platform.package_manager if pm == :yum system('which yum > /dev/null 2>&1') || system('which dnf > /dev/null 2>&1') else cmd = package_manager_commands.dig(pm, 0) cmd ? system("#{cmd} > /dev/null 2>&1") : false end end |
.install_command(package) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/stable/utils/package_manager.rb', line 10 def install_command(package) case Platform.package_manager when :brew "brew install #{package}" when :apt "sudo apt update && sudo apt install -y #{package}" when :yum "sudo yum install -y #{package}" when :pacman "sudo pacman -S --noconfirm #{package}" else raise "Unsupported package manager on #{Platform.current} platform" end end |
.name ⇒ Object
46 47 48 49 |
# File 'lib/stable/utils/package_manager.rb', line 46 def name pm = Platform.package_manager package_manager_commands[pm]&.last || 'Unknown' end |
.service_start_command(service) ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/stable/utils/package_manager.rb', line 25 def service_start_command(service) case Platform.current when :macos "brew services start #{service}" when :linux "sudo systemctl start #{service}" if systemctl_available? else raise "Service management not supported on #{Platform.current} platform" end end |