Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 368675
Collapse All | Expand All

(-)./g-octave-0.4.1/g_octave/package_manager.py (+54 lines)
Lines 15-20 Link Here
15
    'Portage',
15
    'Portage',
16
    'Pkgcore',
16
    'Pkgcore',
17
    'Paludis',
17
    'Paludis',
18
    'Cave',
18
]
19
]
19
20
20
import grp
21
import grp
Lines 243-245 Link Here
243
                packages.append(line.strip())
244
                packages.append(line.strip())
244
        return packages
245
        return packages
245
246
247
class Cave(Base):
248
    
249
    _client = '/usr/bin/cave'
250
    _group = 'paludisbuild'
251
    
252
    post_uninstall = [
253
        'You may want to remove the dependencies too, using:',
254
        '# cave purge',
255
    ]
256
    
257
    def __init__(self, ask=False, verbose=False, pretend=False, oneshot=False, nocolor=False):
258
        self._fullcommand = [self._client]
259
        self._cmd = ['-z']
260
        oneshot and self._cmd.append('-1')
261
        not pretend and self._cmd.append('-x')
262
        #if verbose:
263
        #    self._fullcommand += [
264
        #        '--show-descriptions', 'all',
265
        #        '--show-option-descriptions', 'all',
266
        #    ]
267
        #cave doesn't support '--ask'
268
        #cave doesn't support '--no-color'
269
    
270
    def run_command(self, command):
271
        return subprocess.call(self._fullcommand + command + self._cmd)
272
    
273
    def install_package(self, pkgatom, catpkg):
274
        return self.run_command(['resolve'] + [pkgatom])
275
276
    def uninstall_package(self, pkgatom, catpkg):
277
        return self.run_command(['uninstall'] + [pkgatom])
278
    
279
    def update_package(self, pkgatom=None, catpkg=None):
280
        cmd = ['-1','-K','s','-k','s']
281
        if pkgatom is None:
282
            pkgatom = self.installed_packages()
283
        else:
284
            pkgatom = [pkgatom]
285
        self.do_ebuilds(pkgatom)
286
        return self.run_command(['resolve'] + cmd + pkgatom)
287
    
288
    def installed_packages(self):
289
        packages = []
290
        p = subprocess.Popen([
291
            'cave',
292
            'print-ids',
293
            '--matching', 'g-octave/*::installed',
294
            '--format', '%c/%p\n',
295
        ], stdout=subprocess.PIPE)
296
        if p.wait() == os.EX_OK:
297
            for line in p.stdout:
298
                packages.append(line.strip())
299
        return packages
(-)./g-octave-0.4.1/scripts/g-octave (-1 / +4 lines)
Lines 217-223 Link Here
217
            return os.EX_DATAERR
217
            return os.EX_DATAERR
218
        return os.EX_OK
218
        return os.EX_OK
219
219
220
    from g_octave.package_manager import Portage, Pkgcore, Paludis
220
    from g_octave.package_manager import Portage, Pkgcore, Paludis, Cave
221
221
222
    if conf_prefetch.package_manager == 'portage':
222
    if conf_prefetch.package_manager == 'portage':
223
        log.info('Your package manager is: Portage')
223
        log.info('Your package manager is: Portage')
Lines 228-233 Link Here
228
    elif conf_prefetch.package_manager == 'paludis':
228
    elif conf_prefetch.package_manager == 'paludis':
229
        log.info('Your package manager is: Paludis')
229
        log.info('Your package manager is: Paludis')
230
        pkg_manager = Paludis(options.ask, options.verbose, options.pretend, options.oneshot, not options.colors)
230
        pkg_manager = Paludis(options.ask, options.verbose, options.pretend, options.oneshot, not options.colors)
231
    elif conf_prefetch.package_manager == 'cave':
232
        log.info('Your package manager is: Paludis (Cave)')
233
        pkg_manager = Cave(options.ask, options.verbose, options.pretend, options.oneshot, not options.colors)
231
    else:
234
    else:
232
        log.error('Invalid package manager: %s' % conf_prefetch.package_manager)
235
        log.error('Invalid package manager: %s' % conf_prefetch.package_manager)
233
        out.eerror('Invalid package manager: %s' % conf_prefetch.package_manager)
236
        out.eerror('Invalid package manager: %s' % conf_prefetch.package_manager)

Return to bug 368675