pendrive em terminal

1. pendrive em terminal

marcelo maia da silva
marceloufpa

(usa Ubuntu)

Enviado em 27/12/2010 - 13:01h

A tarefa está quase pronta. O script (anexo) de detecção e ejeção já está funcional, precisando apenas de alguns ajustes. Após isso proceder com a inclusão do mesmo para carregamento na sessão do usuário.
#problema principal: ícone do pendrive não é removido do desktop (falta fazer), e a pasta de drives pra o pendrive também não é removida.
#entretanto: o pendrive é desmontado, mas memso assim aparece a mensagem errada.

#! /usr/bin/python

import gtk
import commands
import getpass
import os

try:
import egg.trayicon
except:
print "You need to install the python-eggtrayicon package"

class EggTrayIcon:
USER = getpass.getuser()
pen_list = commands.getoutput("mount | grep $USER | grep ltspfs | grep -v isquete | awk '{print $3}'").split("\n")
mount_point = "/home/"+USER+"/Drives/"

def __init__(self):
self.tray = egg.trayicon.TrayIcon("TrayIcon")

eventbox = gtk.EventBox()
image = gtk.Image()
image.set_from_file("/usr/share/icons/Boto/22x22/actions/media-eject.png")

eventbox.connect("button-press-event", self.icon_clicked)

eventbox.add(image)
self.tray.add(eventbox)
self.tray.show_all()

def icon_clicked(self, widget, event):
if event.button == 1 or 3:
menu = gtk.Menu()
#menuitem_eject.connect("activate", self.eject)

# TODO: if len(pen_list) > 0

for i in self.pen_list:
label = i[::-1].split("/")[0][::-1].replace("_"," ") # name from mountpoint
menu_item = gtk.MenuItem("Ejetar "+label)
menu.append(menu_item)
menu_item.connect("activate", self.eject, i, label)

menu.show_all()
menu.popup(None, None, None, event.button, event.time, self.tray)

def eject(self, widget, mountpoint, label):
if os.system("fusermount "+mountpoint+" -u -z") == 0:
message_dialog = gtk.MessageDialog(parent=None,
flags=0,
type=gtk.MESSAGE_INFO,
buttons=gtk.BUTTONS_CLOSE,
message_format="O dispositivo chamado \""+label+"\" pode agora ser removido de modo seguro")
else:
message_dialog = gtk.MessageDialog(parent=None,
flags=0,
type=gtk.MESSAGE_ERROR,
buttons=gtk.BUTTONS_CLOSE,
message_format="Falha ao tentar remover o dispositivo")

message_dialog.run()
message_dialog.destroy()

#TODO: Close message at close button
#TODO: Remove item from menu
#TODO: Remove icon from desktop
#TODO: Try to detect when busy

EggTrayIcon()
gtk.main()




  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts