#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # Copyright (c) 2012-2014 Ciro Mattia Gonano # Copyright (c) 2013-2019 Pawel Jastrzebski # # Permission to use, copy, modify, and/or distribute this software for # any purpose with or without fee is hereby granted, provided that the # above copyright notice and this permission notice appear in all # copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL # WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE # AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL # DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA # OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. import os import sys import platform from pathlib import Path if sys.version_info < (3, 8, 0): print('ERROR: This is a Python 3.8+ script!') sys.exit(1) def modify_path(): if platform.system() == 'Darwin': mac_paths = [ '/Applications/Kindle Comic Creator/Kindle Comic Creator.app/Contents/MacOS', '/Applications/Kindle Previewer 3.app/Contents/lib/fc/bin/', ] if getattr(sys, 'frozen', False): os.environ['PATH'] += os.pathsep + os.pathsep.join(mac_paths + [ '/opt/homebrew/bin', '/usr/local/bin', '/usr/bin', '/bin', ] ) os.chdir(os.path.dirname(os.path.abspath(sys.executable))) else: os.environ['PATH'] += os.pathsep + os.pathsep.join(mac_paths) os.chdir(os.path.dirname(os.path.abspath(__file__))) elif platform.system() == 'Linux': if getattr(sys, 'frozen', False): os.environ['PATH'] += os.pathsep + os.pathsep.join( [ str(Path.home() / ".local" / "bin"), '/opt/homebrew/bin', '/usr/local/bin', '/usr/bin', '/bin', ] ) os.chdir(os.path.dirname(os.path.abspath(sys.executable))) else: os.chdir(os.path.dirname(os.path.abspath(__file__))) elif platform.system() == 'Windows': win_paths = [ os.path.expandvars('%LOCALAPPDATA%\\Amazon\\KC2'), os.path.expandvars('%LOCALAPPDATA%\\Amazon\\Kindle Previewer 3\\lib\\fc\\bin\\'), os.path.expandvars('%UserProfile%\\Kindle Previewer 3\\lib\\fc\\bin\\'), 'C:\\Apps\\Kindle Previewer 3\\lib\\fc\\bin', 'D:\\Apps\\Kindle Previewer 3\\lib\\fc\\bin', 'E:\\Apps\\Kindle Previewer 3\\lib\\fc\\bin', 'C:\\Program Files\\7-Zip', 'D:\\Program Files\\7-Zip', 'E:\\Program Files\\7-Zip', ] if getattr(sys, 'frozen', False): os.environ['PATH'] += os.pathsep + os.pathsep.join(win_paths) os.chdir(os.path.dirname(os.path.abspath(sys.executable))) else: os.environ['PATH'] += os.pathsep + os.pathsep.join(win_paths) os.chdir(os.path.dirname(os.path.abspath(__file__))) from multiprocessing import freeze_support, set_start_method from kindlecomicconverter.startup import start if __name__ == "__main__": modify_path() set_start_method('spawn') freeze_support() start()