From 186c5feb434aceeac5fded9222d5477714aa7ff6 Mon Sep 17 00:00:00 2001 From: Erriez Date: Mon, 27 Feb 2023 20:21:52 +0100 Subject: [PATCH] Add shred example --- examples/icons/shred.png | Bin 0 -> 46219 bytes examples/shred.py | 63 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 examples/icons/shred.png create mode 100644 examples/shred.py diff --git a/examples/icons/shred.png b/examples/icons/shred.png new file mode 100644 index 0000000000000000000000000000000000000000..00fb6f878ef994af0d6e7e6af6491ea272c336c6 GIT binary patch literal 46219 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 literal 0 HcmV?d00001 diff --git a/examples/shred.py b/examples/shred.py new file mode 100644 index 0000000..4b27b76 --- /dev/null +++ b/examples/shred.py @@ -0,0 +1,63 @@ +# Examples: https://github.com/mate-desktop/python-caja/tree/master/examples +# +# Note: Currently there is no Python-Caja example available to configure the +# number of shred iterations via the Preferences, Configure Extension dialog. +# https://github.com/mate-desktop/python-caja/issues/71 + +import os + +import gi +from gi.repository import Caja, GObject, Gio, Gtk + + +class ShredMenuProvider(GObject.GObject, Caja.MenuProvider): + # Hard-coded settings + SHRED_ITERATIONS = 0 + SHRED_EXECUTABLE = 'shred' + SHRED_ICON = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'icons/shred.png') + + def __init__(self): + self.shred_args = '-uz -n {}'.format(self.SHRED_ITERATIONS) + + def menu_activate_cb(self, menu, files): + dialog = Gtk.MessageDialog( + parent=None, + flags=0, + message_type=Gtk.MessageType.QUESTION, + buttons=Gtk.ButtonsType.YES_NO, + text="Are you sure to shred files?", + ) + dialog.format_secondary_text("WARNING: This cannot be undone!") + response = dialog.run() + dialog.destroy() + if response == Gtk.ResponseType.NO: + return + + if not files or not len(files): + return + + shred_files = '' + for shred_file in files: + shred_files += '"{}" '.format(shred_file.get_location().get_path()) + + # Start Shred + cmd = '{} {} {}'.format(self.SHRED_EXECUTABLE, self.shred_args, shred_files) + + # Save command for debugging + with open('/tmp/shred.txt', 'w') as f: + f.write(cmd) + + # Start Shred command + os.system(cmd) + + def get_file_items(self, window, files): + top_menuitem = Caja.MenuItem(name='ShredMenuProvider::Shred', + label='Secure delete', + tip='', + icon=self.SHRED_ICON) + top_menuitem.connect('activate', self.menu_activate_cb, files) + + return top_menuitem, + + def get_background_items(self, window, file): + return None,