Package: ltspfs
Version: 0.4.3+debian2+0.edu.0.etch.1
Severity: normal

The attached patch creates corresponding icons on the users kde desktop when 
they insert a removable device.


-- System Information:
Debian Release: 4.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/dash
Kernel: Linux 2.6.18-5-486
Locale: LANG=nb_NO.UTF-8, LC_CTYPE=nb_NO.UTF-8 (charmap=UTF-8)

Versions of packages ltspfs depends on:
ii  fuse-utils             2.5.3-4.4         Filesystem in USErspace (utilities
ii  libc6                  2.3.6.ds1-13etch4 GNU C Library: Shared libraries
ii  libfuse2               2.5.3-4.4         Filesystem in USErspace library
ii  python                 2.4.4-2           An interactive high-level object-o

ltspfs recommends no packages.

-- no debconf information
--- /usr/sbin/ltspfsmounter.orig	2008-01-05 21:21:40.000000000 +0100
+++ /usr/sbin/ltspfsmounter	2008-01-05 21:25:51.000000000 +0100
@@ -7,6 +7,13 @@
 def get_var(name):
     return os.environ.get(name)
 
+def get_desktop_file_path(dev):
+    return os.path.expanduser("~/Desktop/ltspfsmounter--%s.desktop" % (dev))
+
+def get_mountpoint(dev):
+    import getpass
+    return '/media/%s/%s' % (getpass.getuser(), dev)
+
 def add_ltspfsmount(conn, path, root, dev):
     hidden_mount = '%s/%s' % (root, dev)
     lbmount_command = ['lbmount', dev]
@@ -29,6 +36,30 @@
     except OSError, e:
         print >>sys.stderr, "suid mount failed:", e
 
+    desktop_file_s = get_desktop_file_path(dev)
+    if os.path.exists(desktop_file_s):
+        print >>sys.stderr, ".desktop file already exists, skipping"
+        return
+
+    if dev.startswith('usb'):
+        icon = 'usbpendrive_mount'
+    elif dev.startswith('ata'):
+        icon = 'hdd_mount'
+    elif dev.startswith('floppy'):
+        icon = '3floppy_mount'
+    elif dev.startswith('cdrom'):
+        icon = 'cdrom_mount'
+    else:
+        icon = 'usbpendrive_mount'
+    mountpoint = get_mountpoint(dev)
+
+    try:
+        desktop_file = open(desktop_file_s, 'w')
+        desktop_file.write('[Desktop Entry]\nEncoding=UTF-8\nName=%s\nIcon=%s\nType=Link\nURL=%s\n' % (dev, icon, mountpoint))
+        desktop_file.close()
+    except IOError, e:
+        print >>sys.stderr, 'unable to create desktop file:', e      
+
 def remove_ltspfsmount(root, dev):
     hidden_mount = "%s/%s" % (root, dev)
     lbumount_command=['lbmount', '--umount', dev]
@@ -46,6 +77,11 @@
     if os.access(hidden_mount, 0):
         os.rmdir(hidden_mount)
 
+    desktop_file_s = get_desktop_file_path(dev)
+    if os.path.exists(desktop_file_s):
+        os.unlink(desktop_file_s)
+
+
 def cleanup(user):
     known_mounts = open( '/proc/mounts', 'r' ).readlines()
     for dir in ['/media', '/tmp']:
@@ -59,6 +95,10 @@
                     call(['fusermount', '-uzq', mountpoint])
                     if os.access(mountpoint, 0):
                         os.rmdir(mountpoint)
+    import glob
+    for file in glob.glob(os.path.expanduser('~/Desktop/') + 'ltspfsmounter--*.desktop'):
+        os.unlink(file)
+
     sys.exit(0)
 
 def main():

Reply via email to