~usb-creator-hackers/usb-creator/trunk

« back to all changes in this revision

Viewing changes to usbcreator/backends/udisks/backend.py

  • Committer: Steve Langasek
  • Date: 2022-05-31 17:08:32 UTC
  • mfrom: (487.2.1 usb-creator)
  • Revision ID: steve.langasek@canonical.com-20220531170832-22yd1cez3ca1wtdo
MergeĀ lp:~vorlon/usb-creator/genisoimage-to-xorriso

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
import dbus
2
2
import logging
 
3
import os
 
4
import subprocess
 
5
import tempfile
3
6
from dbus.mainloop.glib import DBusGMainLoop, threads_init
4
7
import gi
5
8
gi.require_version('UDisks', '2.0')
145
148
 
146
149
    # Device manipulation functions.
147
150
    def _is_casper_cd(self, filename):
 
151
        tmpfile = tempfile.mkstemp()[1]
148
152
        for search in ['/.disk/info', '/.disk/mini-info']:
149
 
            cmd = ['isoinfo', '-J', '-i', filename, '-x', search]
150
 
            try:
151
 
                output = misc.popen(cmd, stderr=None)
152
 
                if output:
153
 
                    return output
154
 
            except misc.USBCreatorProcessException:
155
 
                # TODO evand 2009-07-26: Error dialog.
156
 
                logging.error('Could not extract .disk/info.')
 
153
            cmd = ['osirrox', '-dev', filename, '-extract', search, tmpfile]
 
154
            subprocess.run(cmd, stderr=None, stdout=None)
 
155
            if os.stat(tmpfile).st_size > 0:
 
156
                f = open(tmpfile)
 
157
                output = f.read()
 
158
                f.close()
 
159
                os.unlink(tmpfile)
 
160
                return output
157
161
        return None
158
162
 
159
163
    def install(self, source, target, allow_system_internal=False):