Method: Autoproj::PackageManagers::ShellScriptManager#install

Defined in:
lib/autoproj/package_managers/shell_script_manager.rb

#install(packages, filter_uptodate_packages: false, install_only: false, auto_install_cmd: self.auto_install_cmd, user_install_cmd: self.user_install_cmd, inherit: Set.new) ⇒ Boolean

Install packages using this package manager

Parameters:

  • packages (Array<String>)

    the name of the packages that should be installed

  • options (Hash)

    a customizable set of options

Returns:

  • (Boolean)

    true if packages got installed, false otherwise



206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
# File 'lib/autoproj/package_managers/shell_script_manager.rb', line 206

def install(packages, filter_uptodate_packages: false, install_only: false,
    auto_install_cmd: self.auto_install_cmd,
    user_install_cmd: self.user_install_cmd,
    inherit: Set.new)
    return if packages.empty?

    handled_os = ws.supported_operating_system?
    if handled_os
        shell_script = generate_auto_os_script(
            packages, auto_install_cmd: auto_install_cmd
        )
        user_shell_script = generate_user_os_script(
            packages, user_install_cmd: user_install_cmd
        )
    end
    if osdeps_interaction(packages, user_shell_script)
        Autoproj.message "  installing OS packages: "\
                         "#{packages.sort.join(', ')}"

        if Autoproj.verbose
            Autoproj.message "Generating installation script for "\
                             "non-ruby OS dependencies"
            Autoproj.message shell_script
        end

        ShellScriptManager.execute(
            [*auto_install_cmd, *packages], needs_locking?,
            needs_root?, env: ws.env, inherit: inherit
        )
        return true
    end
    false
end