mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-21 07:55:00 +00:00
Use package framework for installing tor
This commit is contained in:
parent
7b45ad1813
commit
c7f27e493e
27
actions/tor
27
actions/tor
@ -34,10 +34,6 @@ def parse_arguments():
|
||||
parser = argparse.ArgumentParser()
|
||||
subparsers = parser.add_subparsers(dest='subcommand', help='Sub command')
|
||||
|
||||
# Get whether Tor is installed
|
||||
subparsers.add_parser('get-installed',
|
||||
help='Get whether Tor is installed')
|
||||
|
||||
# Get whether Tor is running
|
||||
subparsers.add_parser('is-running', help='Get whether Tor is running')
|
||||
|
||||
@ -59,11 +55,6 @@ def parse_arguments():
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def subcommand_get_installed(_):
|
||||
"""Get whether Tor is installed"""
|
||||
print('installed' if get_installed() else 'not installed')
|
||||
|
||||
|
||||
def subcommand_is_running(_):
|
||||
"""Get whether Tor is running"""
|
||||
try:
|
||||
@ -101,7 +92,7 @@ def subcommand_get_hs(_):
|
||||
|
||||
def subcommand_enable_hs(_):
|
||||
"""Enable Tor hidden service"""
|
||||
if not get_installed() or get_hidden_service():
|
||||
if get_hidden_service():
|
||||
return
|
||||
|
||||
with open(TOR_CONFIG, 'r') as conffile:
|
||||
@ -121,7 +112,7 @@ def subcommand_enable_hs(_):
|
||||
|
||||
def subcommand_disable_hs(_):
|
||||
"""Disable Tor hidden service"""
|
||||
if not get_installed() or not get_hidden_service():
|
||||
if not get_hidden_service():
|
||||
return
|
||||
|
||||
with open(TOR_CONFIG, 'r') as conffile:
|
||||
@ -154,19 +145,8 @@ def subcommand_disable_hs(_):
|
||||
subprocess.call(['service', 'tor', 'restart'])
|
||||
|
||||
|
||||
def get_installed():
|
||||
"""Get whether Tor is installed"""
|
||||
with open('/dev/null', 'w') as file_handle:
|
||||
status = subprocess.call(['which', 'tor'], stdout=file_handle)
|
||||
|
||||
return not status
|
||||
|
||||
|
||||
def set_tor_service(enable):
|
||||
"""Enable/disable Tor service; enable: boolean"""
|
||||
if not get_installed():
|
||||
return
|
||||
|
||||
newline = 'RUN_DAEMON="yes"\n' if enable else 'RUN_DAEMON="no"\n'
|
||||
|
||||
with open(SERVICE_CONFIG, 'r') as file:
|
||||
@ -182,9 +162,6 @@ def set_tor_service(enable):
|
||||
|
||||
def get_hidden_service():
|
||||
"""Return a string with configured Tor hidden service information"""
|
||||
if not get_installed():
|
||||
return ''
|
||||
|
||||
hs_dir = None
|
||||
hs_ports = []
|
||||
|
||||
|
||||
@ -24,8 +24,6 @@
|
||||
|
||||
<h2>Tor</h2>
|
||||
|
||||
{% if is_installed %}
|
||||
|
||||
<h3>Status</h3>
|
||||
|
||||
<p>
|
||||
@ -80,15 +78,6 @@ port-forwarded, if necessary:</p>
|
||||
<p>A Tor SOCKS port is available on your {{ cfg.box_name }} on TCP port
|
||||
9050.</p>
|
||||
|
||||
{% else %}
|
||||
|
||||
<p>Tor is not installed, please install it. Tor comes pre-installed
|
||||
with {{ cfg.box_name }}. On any Debian-based system (such as
|
||||
{{ cfg.box_name }}) you may install it using the command
|
||||
<code>aptitude install tor</code>.</p>
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block sidebar %}
|
||||
|
||||
@ -27,6 +27,7 @@ from gettext import gettext as _
|
||||
|
||||
from plinth import actions
|
||||
from plinth import cfg
|
||||
from plinth import package
|
||||
|
||||
|
||||
class TorForm(forms.Form): # pylint: disable=W0232
|
||||
@ -43,6 +44,7 @@ def init():
|
||||
|
||||
|
||||
@login_required
|
||||
@package.required('tor')
|
||||
def index(request):
|
||||
"""Service the index page"""
|
||||
status = get_status()
|
||||
@ -61,7 +63,6 @@ def index(request):
|
||||
|
||||
return TemplateResponse(request, 'tor.html',
|
||||
{'title': _('Tor Control Panel'),
|
||||
'is_installed': status['is_installed'],
|
||||
'is_running': status['is_running'],
|
||||
'tor_ports': status['ports'],
|
||||
'tor_hs_enabled': status['hs_enabled'],
|
||||
@ -72,9 +73,6 @@ def index(request):
|
||||
|
||||
def get_status():
|
||||
"""Return the current status"""
|
||||
is_installed = actions.superuser_run(
|
||||
'tor',
|
||||
['get-installed']).strip() == 'installed'
|
||||
is_running = actions.superuser_run('tor', ['is-running']).strip() == 'yes'
|
||||
|
||||
output = actions.superuser_run('tor-get-ports')
|
||||
@ -103,8 +101,7 @@ def get_status():
|
||||
hs_hostname = hs_info[0]
|
||||
hs_ports = hs_info[1]
|
||||
|
||||
return {'is_installed': is_installed,
|
||||
'is_running': is_running,
|
||||
return {'is_running': is_running,
|
||||
'ports': ports,
|
||||
'hs_enabled': hs_enabled,
|
||||
'hs_hostname': hs_hostname,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user