#!/bin/sh /etc/rc.common
# Copyright (C) 2006-2011 OpenWrt.org

START=50
STOP=50

USE_PROCD=1

TORRC_GEN="/tmp/torrc"

handle_conf_file() {
	local conf_path="$1"
	if [ -f "$conf_path" ] || [ -d "$conf_path" ]; then
		echo "%include $conf_path"
	fi
}

generate_conf() {
	local default_conf generated_conf

	config_load tor
	config_get default_conf conf default "/etc/tor/torrc"
	config_get generated_conf conf generated "/tmp/torrc"
	TORRC_GEN="$generated_conf"

	{
	echo "## This file was automatically generated please do not edit here !"
	config_list_foreach "conf" head_include handle_conf_file
	echo "%include $default_conf"
	config_list_foreach "conf" tail_include handle_conf_file
	} > "$TORRC_GEN"
}

reload_service() {
	procd_send_signal /usr/sbin/tor
}

start_service() {
	mkdir -m 0700 -p /var/lib/tor
	chown -R tor:tor /var/lib/tor

	mkdir -m 0755 -p /var/log/tor
	chown -R tor:tor /var/log/tor

	generate_conf

	procd_open_instance
	procd_set_param command /usr/sbin/tor --runasdaemon 0
	procd_append_param command -f "$TORRC_GEN"
	procd_set_param respawn
	procd_close_instance
}