Files
NeoTachyon/tachyon/files/usr/lib/providers/fptn/common.uc
T

40 lines
1.3 KiB
Ucode

let fs = require("fs");
function config(ctx) {
let env_get = function(key, fallback) {
let val = getenv(key);
return val != null ? val : fallback;
};
let bin = env_get("TACHYON_FPTN_BIN", "/usr/bin/fptn-client-cli");
if (fs.stat(bin) == null && fs.stat("/usr/bin/fptn-client") != null)
bin = "/usr/bin/fptn-client";
let state_dir = env_get("TACHYON_FPTN_STATE_DIR", "/var/run/tachyon/fptn");
return {
kind: "fptn",
action: "fptn",
binary: bin,
tun_interface: env_get("TACHYON_FPTN_TUN", "tun-fptn"),
route_table: env_get("TACHYON_FPTN_ROUTE_TABLE", "4249"),
fwmark: env_get("TACHYON_FPTN_FWMARK", "0x00300000"),
mark_mask: env_get("TACHYON_FPTN_MARK_MASK", "0x00ff0000"),
rule_priority: env_get("TACHYON_FPTN_RULE_PRIORITY", "102"),
state_dir: state_dir,
pid_file: state_dir + "/fptn.pid",
log_file: state_dir + "/fptn.log",
package_name: "fptn",
runtime_path: (ctx && ctx.lib_dir ? ctx.lib_dir : "/usr/lib/tachyon") + "/providers/fptn/runtime.uc",
config_name: "fptn",
status_label: "fptn",
check_prefix: "fptn"
};
}
function validator() {
return require("providers.fptn.validator");
}
return { config, validator };