mirror of
				https://github.com/kenzok8/openwrt-packages.git
				synced 2025-10-30 07:50:37 +08:00 
			
		
		
		
	
		
			
	
	
		
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| ![github-actions[bot]](/assets/img/avatar_default.png)  | #!/bin/sh /etc/rc.common
 | ||
|  | . /lib/functions.sh | ||
|  | cfg_groups_set() | ||
|  | { | ||
|  | 
 | ||
|  |    CFG_FILE="/etc/config/clash" | ||
|  |    local section="$1" | ||
|  |    config_get "name" "$section" "name" "" | ||
|  |    config_get "old_name_cfg" "$section" "old_name_cfg" "" | ||
|  |    config_get "old_name" "$section" "old_name" "" | ||
|  | 
 | ||
|  |    if [ -z "$name" ]; then | ||
|  |       return | ||
|  |    fi | ||
|  |     | ||
|  |      | ||
|  |    if [ -z "$old_name_cfg" ]; then | ||
|  |       uci set clash."$section".old_name_cfg="$name" | ||
|  |       uci commit clash | ||
|  |    fi | ||
|  |     | ||
|  |    if [ -z "$old_name" ]; then | ||
|  |       uci set clash."$section".old_name="$name" | ||
|  |       uci commit clash | ||
|  |    fi | ||
|  |     | ||
|  | 	   | ||
|  |    if [ "$name" != "$old_name_cfg" ] && [ ! -z "$old_name_cfg" ]; then | ||
|  |    	  sed -i "s/old_name_cfg \'${old_name_cfg}\'/old_name_cfg \'${name}\'/g" $CFG_FILE 2>/dev/null | ||
|  |       sed -i "s/groups \'${old_name_cfg}/groups \'${name}/g" $CFG_FILE 2>/dev/null | ||
|  |       sed -i "s/other_group \'${old_name_cfg}/other_group \'${name}/g" $CFG_FILE 2>/dev/null | ||
|  |       sed -i "s/new_servers_group \'${old_name_cfg}/new_servers_group \'${name}/g" $CFG_FILE 2>/dev/null | ||
|  |       sed -i "s/relay_groups \'${old_name_cfg}/relay_groups \'${name}/g" $CFG_FILE 2>/dev/null	   | ||
|  |       config_load "clash" | ||
|  |    fi | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | start(){ | ||
|  | status=$(ps|grep -c /usr/share/clash/groups.sh) | ||
|  | [ "$status" -gt "3" ] && exit 0 | ||
|  | 
 | ||
|  |    config_load "clash" | ||
|  |    config_foreach cfg_groups_set "groups" | ||
|  | } |