From 5e2d2f458932fae383b43b21b62926c9d713c860 Mon Sep 17 00:00:00 2001 From: Steven McGrath Date: Wed, 13 Mar 2019 16:00:53 -0500 Subject: [PATCH 1/2] Moved app and config within the sclack package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Moved the app.py and config.json files within the sclack package and updated the setup.py to use the refactored entrypoint to start the script. This should make the sclack application installable from pip. and usable via the commandline as “sclack” --- app.py => sclack/app.py | 9 +++++++-- config.json => sclack/config.json | 0 setup.py | 9 ++++++++- 3 files changed, 15 insertions(+), 3 deletions(-) rename app.py => sclack/app.py (99%) rename config.json => sclack/config.json (100%) diff --git a/app.py b/sclack/app.py similarity index 99% rename from app.py rename to sclack/app.py index e81d175..cda7ed4 100755 --- a/app.py +++ b/sclack/app.py @@ -930,10 +930,15 @@ def ask_for_token(json_config): config_file.write(json.dumps(token_config, indent=False)) json_config.update(token_config) -if __name__ == '__main__': +def run(): json_config = {} - with open('./config.json', 'r') as config_file: + config_file = os.path.join( + os.path.dirname(os.path.realpath(__file__)), 'config.json') + with open(config_file, 'r') as config_file: json_config.update(json.load(config_file)) ask_for_token(json_config) app = App(json_config) app.start() + +if __name__ == '__main__': + run() diff --git a/config.json b/sclack/config.json similarity index 100% rename from config.json rename to sclack/config.json diff --git a/setup.py b/setup.py index 9e73b2b..c0418a1 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,14 @@ author='Marcelo Camargo', author_email='marcelocamargo@linuxmail.org', url='https://github.com/haskellcamargo/sclack', - scripts=["app.py"], + entry_points={ + 'console_scripts': [ + 'sclack=sclack.app:run', + ], + }, + package_data={ + 'sclack': ['config.json'] + }, packages=find_packages(), install_requires=[ 'asyncio', From cfe0c62b686259177ee759f3bdb352a892090b69 Mon Sep 17 00:00:00 2001 From: Steven McGrath Date: Wed, 13 Mar 2019 16:45:48 -0500 Subject: [PATCH 2/2] gacefully exit when CNTRL+C is sent. --- sclack/app.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sclack/app.py b/sclack/app.py index cda7ed4..10f1d78 100755 --- a/sclack/app.py +++ b/sclack/app.py @@ -10,6 +10,7 @@ import traceback import tempfile import urwid +import signal from datetime import datetime from sclack.components import Attachment, Channel, ChannelHeader, ChatBox, Dm from sclack.components import Indicators, MarkdownText, MessageBox @@ -62,6 +63,7 @@ def __init__(self, config): self.set_snooze_widget = None self.workspaces = list(config['workspaces'].items()) self.store = Store(self.workspaces, self.config) + signal.signal(signal.SIGINT, self.quit_application) Store.instance = self.store urwid.set_encoding('UTF-8') sidebar = LoadingSideBar() @@ -907,7 +909,7 @@ def configure_screen(self, screen): if self.workspaces_line is not None: urwid.connect_signal(self.workspaces_line, 'switch_workspace', self.switch_to_workspace) - def quit_application(self): + def quit_application(self, *args): self.urwid_loop.stop() if hasattr(self, 'real_time_task'): self.real_time_task.cancel()