diff --git a/bin.js b/bin.js index ee46f15..6a8ef37 100644 --- a/bin.js +++ b/bin.js @@ -32,7 +32,7 @@ if(program.clear){ try{ //for abs path ruleModule = require(program.rule); }catch(e){ //for relative path - ruleModule = require("./" + program.rule); + ruleModule = require(process.cwd() + '/' + program.rule.replace(/^\.\//,'')); } console.log(color.green("rule file loaded")); }else{ diff --git a/lib/certMgr.js b/lib/certMgr.js index 686065e..8e048b9 100644 --- a/lib/certMgr.js +++ b/lib/certMgr.js @@ -5,9 +5,10 @@ var exec = require('child_process').exec, os = require("os"), color = require('colorful'), readline = require('readline'), + util = require('./util'), asyncTask = require("async-task-mgr"); -var certDir = path.join(getUserHome(),"/.anyproxy_certs/"), +var certDir = path.join(util.getUserHome(),"/.anyproxy_certs/"), cmdDir = path.join(__dirname,"..","./cert/"), asyncTaskMgr = new asyncTask(); @@ -37,10 +38,6 @@ function getCertificate(hostname,cb){ } } -function getUserHome() { - return process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE; -} - function createCert(hostname,callback){ console.log(hostname); checkRootCA(); diff --git a/lib/util.js b/lib/util.js index 8f58988..ce4a315 100644 --- a/lib/util.js +++ b/lib/util.js @@ -18,3 +18,8 @@ module.exports.merge = function(baseObj, extendObj){ return baseObj; } + +module.exports.getUserHome = function(){ + return process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE; +} + diff --git a/proxy.js b/proxy.js index 42b5303..371e37e 100644 --- a/proxy.js +++ b/proxy.js @@ -3,6 +3,7 @@ try{ GLOBAL.util = require('./lib/util'); GLOBAL.util['iconv-lite'] = require("iconv-lite"); GLOBAL.util['colorful'] = require("colorful"); + GLOBAL.util['path'] = require("path"); }catch(e){} var http = require('http'), @@ -19,6 +20,7 @@ var http = require('http'), util = require("./lib/util"), entities = require("entities"), express = require("express"), + path = require("path"), WebSocketServer= require('ws').Server; GLOBAL.recorder = new Recorder(); @@ -31,6 +33,18 @@ var T_TYPE_HTTP = 0, DEFAULT_HOST = "localhost", DEFAULT_TYPE = T_TYPE_HTTP; +var default_rule = require('./lib/rule_default'); +var anyproxyHome = path.join(util.getUserHome(),"/.anyproxy/"); +if(!fs.existsSync(anyproxyHome)){ + fs.mkdirSync(anyproxyHome); +} +if(fs.existsSync(path.join(anyproxyHome,"rule_default.js"))){ + default_rule = require(path.join(anyproxyHome,"rule_default")); +} +if(fs.existsSync(process.cwd() + '/rule.js')){ + default_rule = require(process.cwd() + '/rule'); +} + //option //option.type : 'http'(default) or 'https' //option.port : 8001(default) @@ -43,7 +57,7 @@ function proxyServer(option){ proxyType = /https/i.test(option.type || DEFAULT_TYPE) ? T_TYPE_HTTPS : T_TYPE_HTTP , proxyPort = option.port || DEFAULT_PORT, proxyHost = option.hostname || DEFAULT_HOST, - proxyRules = option.rule || require('./lib/rule_default'); + proxyRules = option.rule || default_rule; requestHandler.setRules(proxyRules); //TODO : optimize calling for set rule self.httpProxyServer = null; diff --git a/web/404.html b/web/404.html index 1a7adc2..fc1b062 100644 --- a/web/404.html +++ b/web/404.html @@ -4,24 +4,25 @@
404 NOT FOUND
+