~ubuntu-branches/ubuntu/oneiric/calibre/oneiric

« back to all changes in this revision

Viewing changes to src/calibre/linux.py

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2010-06-21 10:18:08 UTC
  • mfrom: (1.3.12 upstream)
  • Revision ID: james.westby@ubuntu.com-20100621101808-aue828f532tmo4zt
Tags: 0.7.2+dfsg-1
* New major upstream version. See http://calibre-ebook.com/new-in/seven for
  details.
* Refresh patches to apply cleanly.
* debian/control: Bump python-cssutils to >= 0.9.7~ to ensure the existence
  of the CSSRuleList.rulesOfType attribute. This makes epub conversion work
  again. (Closes: #584756)
* Add debian/local/calibre-mount-helper: Simple and safe replacement for
  upstream's calibre-mount-helper, using udisks --mount and eject.
  (Closes: #584915, LP: #561958)

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
             'ebook-convert      = calibre.ebooks.conversion.cli:main',
19
19
             'markdown-calibre   = calibre.ebooks.markdown.markdown:main',
20
20
             'web2disk           = calibre.web.fetch.simple:main',
21
 
             'calibre-server     = calibre.library.server:main',
 
21
             'calibre-server     = calibre.library.server.main:main',
22
22
             'lrf2lrs            = calibre.ebooks.lrf.lrfparser:main',
23
23
             'lrs2lrf            = calibre.ebooks.lrf.lrs.convert_from:main',
24
24
             'librarything       = calibre.ebooks.metadata.library_thing:main',
132
132
        self.mime_resources = []
133
133
        if islinux:
134
134
            self.setup_completion()
135
 
            self.setup_udev_rules()
136
135
        self.install_man_pages()
137
136
        if islinux:
138
137
            self.setup_desktop_integration()
286
285
                raise
287
286
            self.task_failed('Setting up completion failed')
288
287
 
289
 
    def setup_udev_rules(self):
290
 
        self.info('Trying to setup udev rules...')
291
 
        try:
292
 
            group_file = os.path.join(self.opts.staging_etc, 'group')
293
 
            if not os.path.exists(group_file):
294
 
                group_file = '/etc/group'
295
 
            groups = open(group_file, 'rb').read()
296
 
            group = 'plugdev' if 'plugdev' in groups else 'usb'
297
 
            old_udev = '/etc/udev/rules.d/95-calibre.rules'
298
 
            if not os.path.exists(old_udev):
299
 
                old_udev = os.path.join(self.opts.staging_etc, 'udev/rules.d/95-calibre.rules')
300
 
            if os.path.exists(old_udev):
301
 
                try:
302
 
                    os.remove(old_udev)
303
 
                except:
304
 
                    self.warn('Old udev rules found, please delete manually:',
305
 
                            old_udev)
306
 
            if self.opts.staging_root == '/usr':
307
 
                base = '/lib'
308
 
            else:
309
 
                base = os.path.join(self.opts.staging_root, 'lib')
310
 
            base = os.path.join(base, 'udev', 'rules.d')
311
 
            if not os.path.exists(base):
312
 
                os.makedirs(base)
313
 
            with open(os.path.join(base, '95-calibre.rules'), 'wb') as udev:
314
 
                self.manifest.append(udev.name)
315
 
                udev.write('''# Sony Reader PRS-500\n'''
316
 
                        '''SUBSYSTEMS=="usb", SYSFS{idProduct}=="029b", SYSFS{idVendor}=="054c", MODE="660", GROUP="%s"\n'''%(group,)
317
 
                        )
318
 
        except:
319
 
            if self.opts.fatal_errors:
320
 
                raise
321
 
            self.task_failed('Setting up udev rules failed')
322
 
 
323
288
    def install_man_pages(self):
324
289
        try:
325
290
            from calibre.utils.help2man import create_man_page
446
411
def opts_and_words(name, op, words):
447
412
    opts  = '|'.join(options(op))
448
413
    words = '|'.join([w.replace("'", "\\'") for w in words])
449
 
    return ('_'+name+'()'+\
 
414
    fname = name.replace('-', '_')
 
415
    return ('_'+fname+'()'+\
450
416
'''
451
417
{
452
418
    local cur opts
470
436
    esac
471
437
 
472
438
}
473
 
complete -F _'''%(opts, words) + name + ' ' + name +"\n\n").encode('utf-8')
 
439
complete -F _'''%(opts, words) + fname + ' ' + name +"\n\n").encode('utf-8')
474
440
 
475
441
 
476
442
def opts_and_exts(name, op, exts):