From 8462f36cdb9dbab00d5025ac6d7e4f8581951340 Mon Sep 17 00:00:00 2001 From: Ruben Pollan Date: Tue, 27 Mar 2018 19:12:39 +0200 Subject: [feat] make autostart app name and exec path configurable Use sys.argv[0] as exec path instead of hardcode 'bitmask', and let anonvpn be called RiseupVPN. - Resolves: bitmask-systray#19 --- src/leap/bitmask/core/autostart.py | 61 +++++++++++++++++++++++++++----------- src/leap/bitmask/core/flags.py | 2 ++ src/leap/bitmask/core/launcher.py | 5 +++- 3 files changed, 50 insertions(+), 18 deletions(-) (limited to 'src/leap/bitmask/core') diff --git a/src/leap/bitmask/core/autostart.py b/src/leap/bitmask/core/autostart.py index 1c361d82..c53b8197 100644 --- a/src/leap/bitmask/core/autostart.py +++ b/src/leap/bitmask/core/autostart.py @@ -1,19 +1,37 @@ +# -*- coding: utf-8 -*- +# autostart.py +# Copyright (C) 2018 LEAP +# +# 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 . +""" +Autostart bitmask on user login +""" import os import os.path from leap.bitmask.system import IS_LINUX, IS_MAC -from leap.bitmask.util import STANDALONE from leap.common.config import get_path_prefix +from leap.bitmask.core import flags if IS_LINUX: AUTOSTART = r"""[Desktop Entry] -Name=Bitmask +Name=%(name)s Type=Application -Exec=bitmask +Exec=%(exec)s +Path=%(path)s Terminal=false """ - config = get_path_prefix(standalone=False) - autostart_file = os.path.join(config, 'autostart', 'bitmask.desktop') def autostart_app(status): """ @@ -26,18 +44,27 @@ Terminal=false On the other hand, we want to reduce the modifications that the bundle leaves behind. """ - if not STANDALONE: - if status == 'on': - _dir = os.path.split(autostart_file)[0] - if not os.path.isdir(_dir): - os.makedirs(_dir) - with open(autostart_file, 'w') as f: - f.write(AUTOSTART) - elif status == 'off': - try: - os.unlink(autostart_file) - except OSError: - pass + if not flags.APP_NAME or not flags.EXEC_PATH: + return + + config = get_path_prefix(standalone=False) + autostart_file = os.path.join(config, 'autostart', + '%s.desktop' % flags.APP_NAME) + if status == 'on': + _dir = os.path.split(autostart_file)[0] + if not os.path.isdir(_dir): + os.makedirs(_dir) + with open(autostart_file, 'w') as f: + f.write(AUTOSTART % { + 'name': flags.APP_NAME, + 'exec': flags.EXEC_PATH, + 'path': os.getcwd() + }) + elif status == 'off': + try: + os.unlink(autostart_file) + except OSError: + pass if IS_MAC: diff --git a/src/leap/bitmask/core/flags.py b/src/leap/bitmask/core/flags.py index 12905d3d..9547df02 100644 --- a/src/leap/bitmask/core/flags.py +++ b/src/leap/bitmask/core/flags.py @@ -1,2 +1,4 @@ BACKEND = 'default' VERBOSE = False +APP_NAME = None +EXEC_PATH = None diff --git a/src/leap/bitmask/core/launcher.py b/src/leap/bitmask/core/launcher.py index 14d8e607..b1d5dabd 100644 --- a/src/leap/bitmask/core/launcher.py +++ b/src/leap/bitmask/core/launcher.py @@ -44,7 +44,7 @@ def here(module=None): return dirname(__file__) -def run_bitmaskd(): +def run_bitmaskd(app_name=None, exec_path=None): # TODO --- configure where to put the logs... (get --logfile, --logdir # from bitmaskctl @@ -55,6 +55,9 @@ def run_bitmaskd(): flags.VERBOSE = True if STANDALONE: flags.VERBOSE = True + flags.APP_NAME = app_name + flags.EXEC_PATH = exec_path + args = [ '-y', join(here(core), "bitmaskd.tac"), '--logfile', getLogPath(), -- cgit v1.2.3