diff options
Diffstat (limited to 'desktop/install/scripts/onionshare-pyinstaller')
-rw-r--r-- | desktop/install/scripts/onionshare-pyinstaller | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/desktop/install/scripts/onionshare-pyinstaller b/desktop/install/scripts/onionshare-pyinstaller new file mode 100644 index 00000000..8ca791aa --- /dev/null +++ b/desktop/install/scripts/onionshare-pyinstaller @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +OnionShare | https://onionshare.org/ + +Copyright (C) 2014-2020 Micah Lee, et al. <micah@micahflee.com> + +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 <http://www.gnu.org/licenses/>. +""" +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() |