mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-08-02 23:49:34 +08:00
125 lines
5.4 KiB
Bash
125 lines
5.4 KiB
Bash
#!/bin/sh
|
|
. /usr/share/openclash/ruby.sh
|
|
. /usr/share/openclash/log.sh
|
|
. /lib/functions.sh
|
|
|
|
# This script is called by /etc/init.d/openclash
|
|
# Add your custom overwrite scripts here, they will be take effict after the OpenClash own srcipts
|
|
|
|
LOG_TIP "Start Running Custom Overwrite Scripts..."
|
|
LOGTIME=$(echo $(date "+%Y-%m-%d %H:%M:%S"))
|
|
LOG_FILE="/tmp/openclash.log"
|
|
#Config Path
|
|
CONFIG_FILE="$1"
|
|
|
|
#Simple Demo:
|
|
#Key Overwrite Demo
|
|
#1--config path
|
|
#2--key name
|
|
#3--value
|
|
#ruby_edit "$CONFIG_FILE" "['redir-port']" "7892"
|
|
#ruby_edit "$CONFIG_FILE" "['secret']" "123456"
|
|
#ruby_edit "$CONFIG_FILE" "['dns']['enable']" "true"
|
|
#ruby_edit "$CONFIG_FILE" "['dns']['proxy-server-nameserver']" "['https://doh.pub/dns-query','https://223.5.5.5:443/dns-query']"
|
|
|
|
#Hash Overwrite Demo
|
|
#1--config path
|
|
#2--key name
|
|
#3--hash type value
|
|
#ruby_edit "$CONFIG_FILE" "['dns']['nameserver-policy']" "{'+.msftconnecttest.com'=>'114.114.114.114', '+.msftncsi.com'=>'114.114.114.114', 'geosite:gfw'=>['https://dns.cloudflare.com/dns-query', 'https://dns.google/dns-query#ecs=1.1.1.1/24&ecs-override=true'], 'geosite:cn'=>['114.114.114.114'], 'geosite:geolocation-!cn'=>['https://dns.cloudflare.com/dns-query', 'https://dns.google/dns-query#ecs=1.1.1.1/24&ecs-override=true']}"
|
|
#ruby_edit "$CONFIG_FILE" "['sniffer']" "{'enable'=>true, 'parse-pure-ip'=>true, 'force-domain'=>['+.netflix.com', '+.nflxvideo.net', '+.amazonaws.com', '+.media.dssott.com'], 'skip-domain'=>['+.apple.com', 'Mijia Cloud', 'dlg.io.mi.com', '+.oray.com', '+.sunlogin.net'], 'sniff'=>{'TLS'=>nil, 'HTTP'=>{'ports'=>[80, '8080-8880'], 'override-destination'=>true}}}"
|
|
|
|
#Map Edit Demo
|
|
#1--config path
|
|
#2--map name
|
|
#3--key name
|
|
#4--sub key name
|
|
#5--value
|
|
#ruby_map_edit "$CONFIG_FILE" "['proxy-providers']" "HK" "['url']" "http://test.com"
|
|
|
|
#Hash Merge Demo
|
|
#1--config path
|
|
#2--key name
|
|
#3--hash
|
|
#ruby_merge_hash "$CONFIG_FILE" "['proxy-providers']" "'TW'=>{'type'=>'http', 'path'=>'./proxy_provider/TW.yaml', 'url'=>'https://gist.githubusercontent.com/raw/tw_clash', 'interval'=>3600, 'health-check'=>{'enable'=>true, 'url'=>'http://cp.cloudflare.com/generate_204', 'interval'=>300}}"
|
|
#ruby_merge_hash "$CONFIG_FILE" "['rule-providers']" "'Reject'=>{'type'=>'http', 'behavior'=>'classical', 'url'=>'https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/refs/heads/master/Clash/Apple.list', 'path'=>'./rule_provider/Apple.list', 'interval'=>86400}"
|
|
|
|
#Array Edit Demo
|
|
#1--config path
|
|
#2--key name
|
|
#3--match key name
|
|
#4--match key value
|
|
#5--target key name
|
|
#6--target key value
|
|
#ruby_arr_edit "$CONFIG_FILE" "['proxy-groups']" "['name']" "Proxy" "['type']" "smart"
|
|
#ruby_arr_edit "$CONFIG_FILE" "['dns']['nameserver']" "" "114.114.114.114" "" "119.29.29.29"
|
|
|
|
#Array Insert Value Demo:
|
|
#1--config path
|
|
#2--key name
|
|
#3--position(start from 0, end with -1)
|
|
#4--value
|
|
#ruby_arr_insert "$CONFIG_FILE" "['dns']['nameserver']" "0" "114.114.114.114"
|
|
|
|
#Array Insert Hash Demo:
|
|
#1--config path
|
|
#2--key name
|
|
#3--position(start from 0, end with -1)
|
|
#4--hash
|
|
#ruby_arr_insert_hash "$CONFIG_FILE" "['proxy-groups']" "0" "{'name'=>'Disney', 'type'=>'select', 'disable-udp'=>false, 'use'=>['TW', 'SG', 'HK']}"
|
|
#ruby_arr_insert_hash "$CONFIG_FILE" "['proxies']" "0" "{'name'=>'HKG 01', 'type'=>'ss', 'server'=>'cc.hd.abc', 'port'=>'12345', 'cipher'=>'aes-128-gcm', 'password'=>'123456', 'udp'=>true, 'plugin'=>'obfs', 'plugin-opts'=>{'mode'=>'http', 'host'=>'microsoft.com'}}"
|
|
#ruby_arr_insert_hash "$CONFIG_FILE" "['listeners']" "0" "{'name'=>'name', 'type'=>'shadowsocks', 'port'=>'12345', 'listen'=>'0.0.0.0', 'rule'=>'sub-rule-1', 'proxy'=>'proxy'}"
|
|
|
|
#Array Insert Other Array Demo:
|
|
#1--config path
|
|
#2--key name
|
|
#3--position(start from 0, end with -1)
|
|
#4--array
|
|
#ruby_arr_insert_arr "$CONFIG_FILE" "['dns']['proxy-server-nameserver']" "0" "['https://doh.pub/dns-query','https://223.5.5.5:443/dns-query']"
|
|
|
|
#Array Insert From Yaml File Demo:
|
|
#1--config path
|
|
#2--key name
|
|
#3--position(start from 0, end with -1)
|
|
#4--value file path
|
|
#5--value key name in #4 file
|
|
#ruby_arr_add_file "$CONFIG_FILE" "['dns']['fallback-filter']['ipcidr']" "0" "/etc/openclash/custom/openclash_custom_fallback_filter.yaml" "['fallback-filter']['ipcidr']"
|
|
|
|
#Delete Array Value Demo:
|
|
#1--config path
|
|
#2--key name
|
|
#3--value
|
|
#ruby_delete "$CONFIG_FILE" "['dns']['nameserver']" "114.114.114.114"
|
|
|
|
#Delete Key Demo:
|
|
#1--config path
|
|
#2--key name
|
|
#3--key name
|
|
#ruby_delete "$CONFIG_FILE" "['dns']" "nameserver"
|
|
#ruby_delete "$CONFIG_FILE" "" "dns"
|
|
|
|
#Ruby Script Demo:
|
|
#ruby -ryaml -rYAML -I "/usr/share/openclash" -E UTF-8 -e "
|
|
# begin
|
|
# Value = YAML.load_file('$CONFIG_FILE');
|
|
# rescue Exception => e
|
|
# puts '${LOGTIME} [error] Load File Failed,【' + e.message + '】';
|
|
# end;
|
|
|
|
#General
|
|
# begin
|
|
# Thread.new{
|
|
# Value['redir-port']=7892;
|
|
# Value['tproxy-port']=7895;
|
|
# Value['port']=7890;
|
|
# Value['socks-port']=7891;
|
|
# Value['mixed-port']=7893;
|
|
# }.join;
|
|
|
|
# rescue Exception => e
|
|
# puts '${LOGTIME} [error] Set General Failed,【' + e.message + '】';
|
|
# ensure
|
|
# File.open('$CONFIG_FILE','w') {|f| YAML.dump(Value, f)};
|
|
# end" 2>/dev/null >> $LOG_FILE
|
|
|
|
exit 0 |