From acad477c8a2debe60f6bddd40cd37ac2277ea3cc Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Thu, 2 Jun 2011 18:41:43 +0200 Subject: [PATCH] Make it possible to stop scanner more cleanly --- bin/mopidy-scan | 5 ++++- mopidy/scanner.py | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/bin/mopidy-scan b/bin/mopidy-scan index 84cfee57..718deb73 100755 --- a/bin/mopidy-scan +++ b/bin/mopidy-scan @@ -20,7 +20,10 @@ if __name__ == '__main__': print >> sys.stderr, 'Scanning %s' % settings.LOCAL_MUSIC_PATH scanner = Scanner(settings.LOCAL_MUSIC_PATH, store, debug) - scanner.start() + try: + scanner.start() + except KeyboardInterrupt: + scanner.stop() print >> sys.stderr, 'Done' diff --git a/mopidy/scanner.py b/mopidy/scanner.py index c603c578..b9c770de 100644 --- a/mopidy/scanner.py +++ b/mopidy/scanner.py @@ -82,8 +82,11 @@ class Scanner(object): data = dict([(k, data[k]) for k in data.keys()]) data['uri'] = unicode(self.uribin.get_property('uri')) data['duration'] = self.get_duration() - self.data_callback(data) - self.next_uri() + try: + self.data_callback(data) + self.next_uri() + except KeyboardInterrupt: + self.stop() def process_error(self, bus, message): if self.error_callback: