#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ OnionShare | https://onionshare.org/ Copyright (C) 2014-2018 Micah Lee This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . """ import sys, os, platform # In macOS, allow both CLI and GUI depending on the filename of the binary # being executed if platform.system() == 'Darwin': # If the binary being executed is called 'onionshare', use CLI basename = os.path.basename(sys.argv[0]) if basename == 'onionshare': import onionshare onionshare.main() # Otherwise, use GUI else: import onionshare_gui onionshare_gui.main() # Unfortunately this trick won't work in Windows because I want to set # console=False in the PyInstaller spec file, so there isn't a command prompt # open in the background every you run the GUI. Hopefully Windows can get # a built-in CLI when PyInstaller 3.3 comes out: # https://pyinstaller.readthedocs.io/en/stable/spec-files.html#multipackage-bundles else: import onionshare_gui onionshare_gui.main()