#!/usr/bin/env python
import os, os.path, sys

print 'Uninstall Zenmap 4.65'

answer = raw_input('Are you sure that you want to uninstall Zenmap 4.65? (yes/no) ')

if answer != 'yes' and answer != 'y':
    print 'Not uninstalling.'
    sys.exit(0)

INSTALLED_FILES = (
    '/usr/lib/python2.5/site-packages/zenmapCore/ServiceList.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/Diff.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/ProfileEditorConf.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/NmapParser.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/UmitOptionParser.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/BasePaths.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/TempConf.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/SearchResult.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/UmitConf.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/NmapOptions.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/ServicesDump.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/DiffHtml.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/OSListDump.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/Name.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/UmitConfigParser.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/OptionsConf.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/UserConf.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/__init__.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/UmitDB.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/BugRegister.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/WizardConf.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/Version.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/ScanProfileConf.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/GetConfigFile.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/Paths.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/UmitLogging.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/TargetList.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/OSList.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/RecentScans.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/NmapCommand.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/I18N.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ScanRunDetailsPage.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ScanToolbar.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/App.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/NmapOutputViewer.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/NmapOutputProperties.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/SearchGUI.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/About.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ScanHostDetailsPage.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ScanNmapOutputPage.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/OptionCombo.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/MainWindow.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/Wizard.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/Splash.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/OptionBuilder.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/__init__.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/Icons.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ProfileEditor.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/BugReport.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ScanNotebook.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ScanOpenPortsPage.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ProfileCombo.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/Search.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/OSCombo.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ServiceCombo.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/SearchWindow.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ScanHostsView.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/TargetCombo.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/CrashReport.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/FileChoosers.py',
    '/usr/lib/python2.5/site-packages/zenmapGUI/DiffCompare.py',
    '/usr/lib/python2.5/site-packages/higwidgets/utils.py',
    '/usr/lib/python2.5/site-packages/higwidgets/higframe.py',
    '/usr/lib/python2.5/site-packages/higwidgets/higspinner.py',
    '/usr/lib/python2.5/site-packages/higwidgets/higbuttons.py',
    '/usr/lib/python2.5/site-packages/higwidgets/gtkutils.py',
    '/usr/lib/python2.5/site-packages/higwidgets/higwindows.py',
    '/usr/lib/python2.5/site-packages/higwidgets/higexpanders.py',
    '/usr/lib/python2.5/site-packages/higwidgets/higtextviewers.py',
    '/usr/lib/python2.5/site-packages/higwidgets/higprogressbars.py',
    '/usr/lib/python2.5/site-packages/higwidgets/__init__.py',
    '/usr/lib/python2.5/site-packages/higwidgets/higscrollers.py',
    '/usr/lib/python2.5/site-packages/higwidgets/higboxes.py',
    '/usr/lib/python2.5/site-packages/higwidgets/higlabels.py',
    '/usr/lib/python2.5/site-packages/higwidgets/higlogindialogs.py',
    '/usr/lib/python2.5/site-packages/higwidgets/higdialogs.py',
    '/usr/lib/python2.5/site-packages/higwidgets/hignotebooks.py',
    '/usr/lib/python2.5/site-packages/higwidgets/higtables.py',
    '/usr/lib/python2.5/site-packages/higwidgets/higentries.py',
    '/usr/lib/python2.5/site-packages/zenmapCore/ServiceList.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/Diff.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/ProfileEditorConf.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/NmapParser.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/UmitOptionParser.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/BasePaths.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/TempConf.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/SearchResult.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/UmitConf.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/NmapOptions.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/ServicesDump.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/DiffHtml.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/OSListDump.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/Name.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/UmitConfigParser.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/OptionsConf.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/UserConf.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/__init__.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/UmitDB.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/BugRegister.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/WizardConf.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/Version.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/ScanProfileConf.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/GetConfigFile.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/Paths.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/UmitLogging.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/TargetList.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/OSList.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/RecentScans.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/NmapCommand.pyc',
    '/usr/lib/python2.5/site-packages/zenmapCore/I18N.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ScanRunDetailsPage.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ScanToolbar.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/App.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/NmapOutputViewer.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/NmapOutputProperties.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/SearchGUI.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/About.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ScanHostDetailsPage.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ScanNmapOutputPage.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/OptionCombo.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/MainWindow.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/Wizard.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/Splash.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/OptionBuilder.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/__init__.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/Icons.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ProfileEditor.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/BugReport.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ScanNotebook.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ScanOpenPortsPage.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ProfileCombo.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/Search.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/OSCombo.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ServiceCombo.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/SearchWindow.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/ScanHostsView.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/TargetCombo.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/CrashReport.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/FileChoosers.pyc',
    '/usr/lib/python2.5/site-packages/zenmapGUI/DiffCompare.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/utils.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/higframe.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/higspinner.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/higbuttons.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/gtkutils.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/higwindows.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/higexpanders.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/higtextviewers.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/higprogressbars.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/__init__.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/higscrollers.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/higboxes.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/higlabels.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/higlogindialogs.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/higdialogs.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/hignotebooks.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/higtables.pyc',
    '/usr/lib/python2.5/site-packages/higwidgets/higentries.pyc',
    '/usr/bin/zenmap',
    '/usr/share/pixmaps/irix.svg',
    '/usr/share/pixmaps/default.svg',
    '/usr/share/pixmaps/solaris.svg',
    '/usr/share/pixmaps/vl_2.svg',
    '/usr/share/pixmaps/win.svg',
    '/usr/share/pixmaps/vl_5.svg',
    '/usr/share/pixmaps/macosx.svg',
    '/usr/share/pixmaps/vl_3.svg',
    '/usr/share/pixmaps/shadow_man.svg',
    '/usr/share/pixmaps/ubuntu.svg',
    '/usr/share/pixmaps/freebsd.svg',
    '/usr/share/pixmaps/linux.svg',
    '/usr/share/pixmaps/vl_4.svg',
    '/usr/share/pixmaps/unknown.svg',
    '/usr/share/pixmaps/openbsd.svg',
    '/usr/share/pixmaps/vl_1.svg',
    '/usr/share/pixmaps/redhat.svg',
    '/usr/share/pixmaps/wizard_logo.png',
    '/usr/share/pixmaps/redhat_32.png',
    '/usr/share/pixmaps/openbsd_32.png',
    '/usr/share/pixmaps/vl_2_75.png',
    '/usr/share/pixmaps/unknown_32.png',
    '/usr/share/pixmaps/openbsd_75.png',
    '/usr/share/pixmaps/redhat_75.png',
    '/usr/share/pixmaps/ubuntu_32.png',
    '/usr/share/pixmaps/win_32.png',
    '/usr/share/pixmaps/vl_5_75.png',
    '/usr/share/pixmaps/freebsd_32.png',
    '/usr/share/pixmaps/unknown_75.png',
    '/usr/share/pixmaps/irix_32.png',
    '/usr/share/pixmaps/solaris_32.png',
    '/usr/share/pixmaps/vl_2_32.png',
    '/usr/share/pixmaps/shadow_man_32.png',
    '/usr/share/pixmaps/default_32.png',
    '/usr/share/pixmaps/ubuntu_75.png',
    '/usr/share/pixmaps/splash.png',
    '/usr/share/pixmaps/freebsd_75.png',
    '/usr/share/pixmaps/vl_3_75.png',
    '/usr/share/pixmaps/macosx_75.png',
    '/usr/share/pixmaps/default_75.png',
    '/usr/share/pixmaps/vl_1_32.png',
    '/usr/share/pixmaps/macosx_32.png',
    '/usr/share/pixmaps/win_75.png',
    '/usr/share/pixmaps/irix_75.png',
    '/usr/share/pixmaps/shadow_man_75.png',
    '/usr/share/pixmaps/linux_32.png',
    '/usr/share/pixmaps/vl_3_32.png',
    '/usr/share/pixmaps/solaris_75.png',
    '/usr/share/pixmaps/linux_75.png',
    '/usr/share/pixmaps/vl_5_32.png',
    '/usr/share/pixmaps/vl_4_32.png',
    '/usr/share/pixmaps/vl_1_75.png',
    '/usr/share/pixmaps/vl_4_75.png',
    '/usr/share/zenmap/config/zenmap.conf',
    '/usr/share/zenmap/config/scan_profile.usp',
    '/usr/share/zenmap/config/zenmap_version',
    '/usr/share/zenmap/misc/os_db.dmp',
    '/usr/share/zenmap/misc/services.dmp',
    '/usr/share/zenmap/misc/wizard.xml',
    '/usr/share/zenmap/misc/options.xml',
    '/usr/share/zenmap/misc/profile_editor.xml',
    '/usr/share/icons/nmap-eye.ico',
    '/usr/share/zenmap/docs/help.html',
    '/usr/share/zenmap/locale/pt_BR/LC_MESSAGES/umit.mo',
    '/usr/lib/python2.5/site-packages/zenmap-4.65-py2.5.egg-info',
    '/usr/lib/python2.5/site-packages/zenmapCore',
    '/usr/lib/python2.5/site-packages/zenmapGUI',
    '/usr/lib/python2.5/site-packages/higwidgets',
    '/usr/share/zenmap',
    '/usr/share/zenmap/docs',
    '/usr/share/zenmap/misc',
    '/usr/share/zenmap/config',
    '/usr/share/zenmap/locale',
    '/usr/share/zenmap/locale/pt_BR',
    '/usr/share/zenmap/locale/pt_BR/LC_MESSAGES',
    '/usr/bin/uninstall_zenmap',
)

# Split the list into lists of files and directories.
files = []
dirs = []
for path in INSTALLED_FILES:
    if os.path.isfile(path) or os.path.islink(path):
        files.append(path)
    elif os.path.isdir(path):
        dirs.append(path)
# Delete the files.
for file in files:
    print "Removing '%s'." % file
    try:
        os.remove(file)
    except OSError, e:
        print >> sys.stderr, '  Error: %s.' % str(e)
# Delete the directories. First reverse-sort the normalized paths by
# length so that child directories are deleted before their parents.
dirs = [os.path.normpath(dir) for dir in dirs]
dirs.sort(key = len, reverse = True)
for dir in dirs:
    try:
        print "Removing the directory '%s'." % dir
        os.rmdir(dir)
    except OSError, e:
        if e.errno == errno.ENOTEMPTY:
            print "Directory '%s' not empty; not removing." % dir
        else:
            print >> sys.stderr, str(e)
