From 321dd225e40be8f3e0c2e058f831ab804ca622b0 Mon Sep 17 00:00:00 2001 From: "Kali Kaneko (leap communications)" Date: Tue, 27 Sep 2016 11:31:22 -0400 Subject: [feature] upload logs from the cli --- src/leap/bitmask/cli/bitmask_cli.py | 6 ++++ src/leap/bitmask/cli/logs.py | 64 +++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 src/leap/bitmask/cli/logs.py diff --git a/src/leap/bitmask/cli/bitmask_cli.py b/src/leap/bitmask/cli/bitmask_cli.py index 091b73f4..64fe74b9 100755 --- a/src/leap/bitmask/cli/bitmask_cli.py +++ b/src/leap/bitmask/cli/bitmask_cli.py @@ -30,6 +30,7 @@ from leap.bitmask.cli.mail import Mail from leap.bitmask.cli.webui import WebUI from leap.bitmask.cli import command from leap.bitmask.cli.user import User +from leap.bitmask.cli.logs import Logs class BitmaskCLI(command.Command): @@ -44,6 +45,7 @@ SERVICE COMMANDS: eip Encrypted Internet Proxy keys Bitmask Keymanager ui Bitmask User Interface + logs Manages bitmask daemon logs GENERAL COMMANDS: @@ -79,6 +81,10 @@ GENERAL COMMANDS: webui = WebUI() return webui.execute(raw_args) + def logs(self, raw_args): + logs = Logs() + return logs.execute(raw_args) + # Single commands def start(self, raw_args): diff --git a/src/leap/bitmask/cli/logs.py b/src/leap/bitmask/cli/logs.py new file mode 100644 index 00000000..11903ee9 --- /dev/null +++ b/src/leap/bitmask/cli/logs.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +# keys +# Copyright (C) 2016 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 . +""" +Bitmask Command Line interface: logs +""" +import argparse +import commands +import os.path +import sys + +from colorama import Fore + +from twisted.internet import defer +from twisted.python.procutils import which + +from leap.bitmask.cli import command +from leap.common.config import get_path_prefix + + + +class Logs(command.Command): + usage = '''{name} logs + +Bitmask Log Handling + +SUBCOMMANDS: + + send Send last bitmaskd log +'''.format(name=command.appname) + + def send(self, raw_args): + _bin = which('pastebinit') + if not _bin: + error('pastebinit not found. install it to upload logs.') + return defer.succeed(None) + log_path = os.path.abspath( + os.path.join(get_path_prefix(), 'leap', 'bitmaskd.log')) + output = commands.getoutput('{0} -b {1} {2}'.format( + _bin[0], 'paste.debian.net', log_path)) + uri = output.replace('debian.net/', 'debian.net/plain/') + success(uri) + return defer.succeed(None) + + +def error(msg): + print Fore.RED + msg + Fore.RESET + + +def success(msg): + print Fore.GREEN + '[+] Bitmaskd logs pasted to ' + msg + Fore.RESET -- cgit v1.2.3