Example #1
0
    def open_linux(self):
        def mount(node, type):
            mp = self.node_mountpoint(node)
            if mp is not None:
                return mp, 0

            def do_mount(node):
                try:
                    from calibre.devices.udisks import mount

                    mount(node)
                    return 0
                except:
                    print "Udisks mount call failed:"
                    import traceback

                    traceback.print_exc()
                    return 1

            ret = do_mount(node)
            if ret != 0:
                return None, ret
            return self.node_mountpoint(node) + "/", 0

        main, carda, cardb = self.find_device_nodes()
        if main is None:
            raise DeviceError(
                _(
                    "Unable to detect the %s disk drive. Either "
                    "the device has already been ejected, or your "
                    "kernel is exporting a deprecated version of SYSFS."
                )
                % self.__class__.__name__
            )
        if DEBUG:
            print "\nFound device nodes:", main, carda, cardb

        self._linux_mount_map = {}
        mp, ret = mount(main, "main")
        if mp is None:
            raise DeviceError(_("Unable to mount main memory (Error code: %d)") % ret)
        if not mp.endswith("/"):
            mp += "/"
        self._linux_mount_map[main] = mp
        self._main_prefix = mp
        self._linux_main_device_node = main
        cards = [(carda, "_card_a_prefix", "carda"), (cardb, "_card_b_prefix", "cardb")]
        for card, prefix, typ in cards:
            if card is None:
                continue
            mp, ret = mount(card, typ)
            if mp is None:
                print >> sys.stderr, "Unable to mount card (Error code: %d)" % ret
            else:
                if not mp.endswith("/"):
                    mp += "/"
                setattr(self, prefix, mp)
                self._linux_mount_map[card] = mp

        self.filter_read_only_mount_points()
Example #2
0
    def open_linux(self):
        def mount(node, type):
            mp = self.node_mountpoint(node)
            if mp is not None:
                return mp, 0

            def do_mount(node):
                try:
                    from calibre.devices.udisks import mount
                    mount(node)
                    return 0
                except:
                    print('Udisks mount call failed:')
                    import traceback
                    traceback.print_exc()
                    return 1

            ret = do_mount(node)
            if ret != 0:
                return None, ret
            return self.node_mountpoint(node) + '/', 0

        main, carda, cardb = self.find_device_nodes()
        if main is None:
            raise DeviceError(
                _('Unable to detect the %s disk drive. Either '
                  'the device has already been ejected, or your '
                  'kernel is exporting a deprecated version of SYSFS.') %
                self.__class__.__name__)
        if DEBUG:
            print('\nFound device nodes:', main, carda, cardb)

        self._linux_mount_map = {}
        mp, ret = mount(main, 'main')
        if mp is None:
            raise DeviceError(
                _('Unable to mount main memory (Error code: %d)') % ret)
        if not mp.endswith('/'):
            mp += '/'
        self._linux_mount_map[main] = mp
        self._main_prefix = mp
        self._linux_main_device_node = main
        cards = [(carda, '_card_a_prefix', 'carda'),
                 (cardb, '_card_b_prefix', 'cardb')]
        for card, prefix, typ in cards:
            if card is None:
                continue
            mp, ret = mount(card, typ)
            if mp is None:
                print('Unable to mount card (Error code: %d)' % ret,
                      file=sys.stderr)
            else:
                if not mp.endswith('/'):
                    mp += '/'
                setattr(self, prefix, mp)
                self._linux_mount_map[card] = mp

        self.filter_read_only_mount_points()
Example #3
0
    def open_linux(self):

        def mount(node, type):
            mp = self.node_mountpoint(node)
            if mp is not None:
                return mp, 0

            def do_mount(node):
                try:
                    from calibre.devices.udisks import mount
                    mount(node)
                    return 0
                except:
                    print('Udisks mount call failed:')
                    import traceback
                    traceback.print_exc()
                    return 1

            ret = do_mount(node)
            if ret != 0:
                return None, ret
            return self.node_mountpoint(node)+'/', 0

        main, carda, cardb = self.find_device_nodes()
        if main is None:
            raise DeviceError(_('Unable to detect the %s disk drive. Either '
            'the device has already been ejected, or your '
            'kernel is exporting a deprecated version of SYSFS.')
                    %self.__class__.__name__)
        if DEBUG:
            print('\nFound device nodes:', main, carda, cardb)

        self._linux_mount_map = {}
        mp, ret = mount(main, 'main')
        if mp is None:
            raise DeviceError(
            _('Unable to mount main memory (Error code: %d)')%ret)
        if not mp.endswith('/'):
            mp += '/'
        self._linux_mount_map[main] = mp
        self._main_prefix = mp
        self._linux_main_device_node = main
        cards = [(carda, '_card_a_prefix', 'carda'),
                 (cardb, '_card_b_prefix', 'cardb')]
        for card, prefix, typ in cards:
            if card is None:
                continue
            mp, ret = mount(card, typ)
            if mp is None:
                print('Unable to mount card (Error code: %d)'%ret, file=sys.stderr)
            else:
                if not mp.endswith('/'):
                    mp += '/'
                setattr(self, prefix, mp)
                self._linux_mount_map[card] = mp

        self.filter_read_only_mount_points()
Example #4
0
 def do_mount(node):
     try:
         from calibre.devices.udisks import mount
         mount(node)
         return 0
     except:
         print('Udisks mount call failed:')
         import traceback
         traceback.print_exc()
         return 1
Example #5
0
 def do_mount(node):
     try:
         from calibre.devices.udisks import mount
         mount(node)
         return 0
     except:
         print 'Udisks mount call failed:'
         import traceback
         traceback.print_exc()
         return 1