diff --git a/.gitignore b/.gitignore index 5af7922..f68082e 100644 --- a/.gitignore +++ b/.gitignore @@ -104,4 +104,13 @@ safeeyes/config/locale/*/LC_MESSAGES/safeeyes.po~ node_modules/ # PyCharm -.idea \ No newline at end of file +.idea + +# Debian Build +.pybuild/ +debian/safeeyes +debian/.debhelper +debian/files +debian/safeeyes.substvars +debian/safeeyes.prerm.debhelper +debian/safeeyes.postinst.debhelper \ No newline at end of file diff --git a/debian/safeeyes.install b/debian/safeeyes.install new file mode 100644 index 0000000..0a32b7b --- /dev/null +++ b/debian/safeeyes.install @@ -0,0 +1,17 @@ +safeeyes/platform/safeeyes.desktop usr/share/applications +safeeyes/platform/icons/hicolor/128x128/apps/safeeyes.png usr/share/icons/hicolor/128x128/apps +safeeyes/platform/icons/hicolor/16x16/apps/safeeyes.png usr/share/icons/hicolor/16x16/apps +safeeyes/platform/icons/hicolor/16x16/status/safeeyes_disabled.png usr/share/icons/hicolor/16x16/status +safeeyes/platform/icons/hicolor/16x16/status/safeeyes_enabled.png usr/share/icons/hicolor/16x16/status +safeeyes/platform/icons/hicolor/16x16/status/safeeyes_timer.png usr/share/icons/hicolor/16x16/status +safeeyes/platform/icons/hicolor/24x24/apps/safeeyes.png usr/share/icons/hicolor/24x24/apps +safeeyes/platform/icons/hicolor/24x24/status/safeeyes_disabled.png usr/share/icons/hicolor/24x24/status +safeeyes/platform/icons/hicolor/24x24/status/safeeyes_enabled.png usr/share/icons/hicolor/24x24/status +safeeyes/platform/icons/hicolor/24x24/status/safeeyes_timer.png usr/share/icons/hicolor/24x24/status +safeeyes/platform/icons/hicolor/32x32/apps/safeeyes.png usr/share/icons/hicolor/32x32/apps +safeeyes/platform/icons/hicolor/32x32/status/safeeyes_disabled.png usr/share/icons/hicolor/32x32/status +safeeyes/platform/icons/hicolor/32x32/status/safeeyes_enabled.png usr/share/icons/hicolor/32x32/status +safeeyes/platform/icons/hicolor/48x48/apps/safeeyes.png usr/share/icons/hicolor/48x48/apps +safeeyes/platform/icons/hicolor/48x48/status/safeeyes_disabled.png usr/share/icons/hicolor/48x48/status +safeeyes/platform/icons/hicolor/48x48/status/safeeyes_enabled.png usr/share/icons/hicolor/48x48/status +safeeyes/platform/icons/hicolor/64x64/apps/safeeyes.png usr/share/icons/hicolor/64x64/apps \ No newline at end of file diff --git a/safeeyes/utility.py b/safeeyes/utility.py index d9e2f83..8a816a1 100644 --- a/safeeyes/utility.py +++ b/safeeyes/utility.py @@ -29,6 +29,7 @@ import locale import logging import os import re +import sys import shutil import subprocess import threading @@ -381,8 +382,6 @@ def initialize_safeeyes(): shutil.copy2(SYSTEM_STYLE_SHEET_PATH, STYLE_SHEET_PATH) os.chmod(STYLE_SHEET_PATH, 0o777) - initialize_platform() - def initialize_platform(): """ @@ -397,19 +396,25 @@ def initialize_platform(): startup_entry = os.path.join(startup_dir_path, 'safeeyes.desktop') # Create the folders if not exist - mkdir(applications_dir_path) mkdir(icons_dir_path) mkdir(startup_dir_path) # Remove existing files - delete(desktop_entry) delete(startup_entry) # Create a destop entry - try: - os.symlink(SYSTEM_DESKTOP_FILE, desktop_entry) - except OSError: - logging.error("Failed to create desktop entry at %s" % desktop_entry) + if not os.path.exists(os.path.join(sys.prefix, "share/applications/safeeyes.desktop")): + # Create the folder if not exist + mkdir(applications_dir_path) + + # Remove existing file + delete(desktop_entry) + + # Create a link + try: + os.symlink(SYSTEM_DESKTOP_FILE, desktop_entry) + except OSError: + logging.error("Failed to create desktop entry at %s" % desktop_entry) # Create the new startup entry try: @@ -422,8 +427,13 @@ def initialize_platform(): for filename in filenames: system_icon = os.path.join(path, filename) local_icon = os.path.join(icons_dir_path, os.path.relpath(system_icon, SYSTEM_ICONS)) + global_icon = os.path.join(sys.prefix, "share/icons", os.path.relpath(system_icon, SYSTEM_ICONS)) parent_dir = str(Path(local_icon).parent) + if os.path.exists(global_icon): + # This icon is already added to the /usr/share/icons/hicolor folder + continue + # Create the directory if not exists mkdir(parent_dir) diff --git a/setup.py b/setup.py index a7f7f2c..629c547 100644 --- a/setup.py +++ b/setup.py @@ -36,14 +36,22 @@ def __compile_po_files(): subprocess.call(msgfmt_cmd, shell=True) -def _data_files(path): +def __data_files(): """ Collect the data files. """ - for root, _, files in os.walk(path): - if not files: - continue - yield (os.path.join(site.USER_BASE or sys.prefix, root), [os.path.join(root, f) for f in files]) + root_dir = sys.prefix + return [(os.path.join(root_dir, "share/applications"), ["safeeyes/platform/safeeyes.desktop"]), + (os.path.join(root_dir, "share/icons/hicolor/24x24/status"), ["safeeyes/platform/icons/hicolor/24x24/status/safeeyes_disabled.png", "safeeyes/platform/icons/hicolor/24x24/status/safeeyes_enabled.png", "safeeyes/platform/icons/hicolor/24x24/status/safeeyes_timer.png"]), + (os.path.join(root_dir, "share/icons/hicolor/24x24/apps"), ["safeeyes/platform/icons/hicolor/24x24/apps/safeeyes.png"]), + (os.path.join(root_dir, "share/icons/hicolor/16x16/status"), ["safeeyes/platform/icons/hicolor/16x16/status/safeeyes_disabled.png", "safeeyes/platform/icons/hicolor/16x16/status/safeeyes_enabled.png", "safeeyes/platform/icons/hicolor/16x16/status/safeeyes_timer.png"]), + (os.path.join(root_dir, "share/icons/hicolor/16x16/apps"), ["safeeyes/platform/icons/hicolor/16x16/apps/safeeyes.png"]), + (os.path.join(root_dir, "share/icons/hicolor/32x32/status"), ["safeeyes/platform/icons/hicolor/32x32/status/safeeyes_disabled.png", "safeeyes/platform/icons/hicolor/32x32/status/safeeyes_enabled.png"]), + (os.path.join(root_dir, "share/icons/hicolor/32x32/apps"), ["safeeyes/platform/icons/hicolor/32x32/apps/safeeyes.png"]), + (os.path.join(root_dir, "share/icons/hicolor/64x64/apps"), ["safeeyes/platform/icons/hicolor/64x64/apps/safeeyes.png"]), + (os.path.join(root_dir, "share/icons/hicolor/128x128/apps"), ["safeeyes/platform/icons/hicolor/128x128/apps/safeeyes.png"]), + (os.path.join(root_dir, "share/icons/hicolor/48x48/status"), ["safeeyes/platform/icons/hicolor/48x48/status/safeeyes_disabled.png", "safeeyes/platform/icons/hicolor/48x48/status/safeeyes_enabled.png"]), + (os.path.join(root_dir, "share/icons/hicolor/48x48/apps"), ["safeeyes/platform/icons/hicolor/48x48/apps/safeeyes.png"]),] def __package_files(directory): @@ -68,10 +76,6 @@ def __package_data(): data.extend(__package_files('safeeyes/platform')) return data - -# __data_files = list(_data_files('share')) -__data_files = list() - setuptools.setup( name="safeeyes", version="2.1.1", @@ -84,7 +88,7 @@ setuptools.setup( download_url="https://github.com/slgobinath/SafeEyes/archive/v2.1.1.tar.gz", packages=setuptools.find_packages(), package_data={'safeeyes': __package_data()}, - data_files=__data_files, + data_files=__data_files(), install_requires=requires, entry_points={'console_scripts': ['safeeyes = safeeyes.__main__:main']}, keywords='linux utility health eye-strain safe-eyes',