base-files: add leds migration
Currently leds migration scripts in ar71xx and lantiq share a lot of logic and introducing leds migration to another target would mean copying this code, again. Therefore add common logic to library in base-files package. Suggested-by: Petr Štetiar <ynezz@true.cz> Signed-off-by: Petr Štetiar <ynezz@true.cz> Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
This commit is contained in:
		
				
					committed by
					
						
						Christian Lamparter
					
				
			
			
				
	
			
			
			
						parent
						
							32689e93c4
						
					
				
				
					commit
					afef17e24d
				
			
							
								
								
									
										39
									
								
								package/base-files/files/lib/functions/migrations.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								package/base-files/files/lib/functions/migrations.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					. /lib/functions.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					migrate_led_sysfs() {
 | 
				
			||||||
 | 
						local cfg="$1"; shift
 | 
				
			||||||
 | 
						local tuples="$@"
 | 
				
			||||||
 | 
						local sysfs
 | 
				
			||||||
 | 
						local name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						config_get sysfs ${cfg} sysfs
 | 
				
			||||||
 | 
						config_get name ${cfg} name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[ -z "${sysfs}" ] && return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for tuple in ${tuples}; do
 | 
				
			||||||
 | 
							local old=${tuple%=*}
 | 
				
			||||||
 | 
							local new=${tuple#*=}
 | 
				
			||||||
 | 
							local new_sysfs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							new_sysfs=$(echo ${sysfs} | sed "s/${old}/${new}/")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							[ "${new_sysfs}" = "${sysfs}" ] && continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							uci set system.${cfg}.sysfs="${new_sysfs}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							logger -t led-migration "sysfs option of LED \"${name}\" updated to ${new_sysfs}"
 | 
				
			||||||
 | 
						done;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					migrate_leds() {
 | 
				
			||||||
 | 
						config_load system
 | 
				
			||||||
 | 
						config_foreach migrate_led_sysfs led "$@"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					migrations_apply() {
 | 
				
			||||||
 | 
						local realm="$1"
 | 
				
			||||||
 | 
						[ -n "$(uci changes ${realm})" ] && uci -q commit ${realm}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user