@ -3,7 +3,7 @@ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					#simplebuild_plugin tcupdate 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					tcupdate(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						pversion="0.12.0 "; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						pversion="0.11.5 "; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						pname="s3.TUP"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						pdesc="Plugin $pname v$pversion"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						configname="$configdir/plugin_update_toolchain.config"; 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -17,7 +17,6 @@ tcupdate(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						[ -z "$4" ] && FLAG="0" || FLAG="$4"; #1 - tcupdate call from s3 main menu, 2 - tcupdate call from s3 toolchain menu; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						tc="$CMDTC"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						#check/install prerequisites 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						clear && _check_pkg; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						#backup config 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -46,28 +45,12 @@ tcupdate(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							_paktc_timer 5; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						fi; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						#change config value's 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						if [ "$CMDTC" == "-cfg" ] || [ "$CMDTC" == "--config" ];then 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							_change_config "$OPTION1" "$OPTION2"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							CMDTC="" && OPTION1="$2" &&	OPTION2="$3"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						fi; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						#load config	 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						source "$configname"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						#check config 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						_check_config; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						#ct-ng must not be run as root unless you forcing it by config 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						if [ ! _check_root ] || [ "$CTNG_BUILD_AS_ROOT" == "1" ];then 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							CTNG_START_BUILD=1; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						else 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							CTNG_START_BUILD=0; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							sp=$(printf '%*s' 9); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							CTNG_ROOT_BUILD_ERROR="\nERROR -> The execution of crosstool-NG was aborted because it must not run as root!\n\n""$sp""If you are aware of the danger of running crosstool-NG as root and you\n""$sp""know what you are doing, you can force it with the following command:\n\n"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							CTNG_ROOT_BUILD_CMD="$sp""./s3 tcupdate --config \"CTNG_BUILD_AS_ROOT\" \"1\"\n"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						fi; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						if [ "$CMDTC" == "-c" ] || [ "$CMDTC" == "--create" ];then	#start toolchain builder menu 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							_create_tc "$OPTION1" "" "$FLAG"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							[ "$FLAG" == "1" ] && return || bye; 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -88,7 +71,7 @@ tcupdate(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							else 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								_nl && exit; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							fi; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						elif [ "$CMDTC" == "-ctng" ] || [ "$CMDTC" == "--crosstool-ng" ] ;then #croostool-NG menu 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						elif [ "$CMDTC" == "-ctng" ];then #croostool-NG menu 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							_ctng_menu "$OPTION1"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							bye; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						elif [ -z "$CMDTC" ];then 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -265,6 +248,9 @@ tcupdate(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					_create_tc(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						_sz;					# Prepare DIALOG settings 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						#ct-ng must not be run as root unless you forcing it by config 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						! _check_root && START_BUILD=1 || [ "$CTNG_BUILD_AS_ROOT" == "1" ] && START_BUILD=1 || START_BUILD=0; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						local menu_close; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						while [ ! $menu_close ] 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						do 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -310,7 +296,7 @@ _create_tc(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									if [ ! -f "$ctsrcdir/ct-ng" ]; then 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
										echo -e "$r_l""\nCHECK -> crosstool-NG is not setup correctly. Try to fix it automatically...\n""$re_"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
										_paktc_timer 5; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
										_ctng_setup "$CTNG_ START_BUILD"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
										_ctng_setup "$START_BUILD"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									fi; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									#Build cross toolchains 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -343,7 +329,7 @@ _create_tc(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
											echo -e "cd \"$ctsrcdir\";\n$(_replace_tokens "$bcl")\n$sp""$re_" | tee -a "$logfile"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
											sleep 2; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
											if [ $CTNG_ START_BUILD -eq 1 ]; then 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
											if [ $START_BUILD -eq 1 ]; then 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
												cd "$ctsrcdir"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
												#print out crosstool-NG version 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
												echo -e "$g_l\n$(./ct-ng | grep 'crosstool-NG version' &2>/dev/null | tail -1)\n""$re_" | tee -a "$logfile"; 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -377,7 +363,7 @@ _create_tc(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
													_paktc_timer 10; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
												fi; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
											else 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
												echo -e "$r_l""$CTNG_ROOT_BUILD_ERROR""$y_l""$CTNG_ROOT_BUILD_CMD ""$re_" | tee -a "$logfile"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
												echo -e "$r_l""\nERROR -> The execution of crosstool-NG was aborted\n         because it must not run as root!\n ""$re_" | tee -a "$logfile"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
												_paktc_timer 10; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
											fi; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
										else 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -386,7 +372,7 @@ _create_tc(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
										fi; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									done;; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								1) #Setup - Setup crosstool-NG 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									_ctng_setup "$CTNG_ START_BUILD"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									_ctng_setup "$START_BUILD"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									_paktc_timer 10;; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
								2) #Edit 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
									tpl=$(echo "$opts" | awk '{printf $2}';); 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -487,7 +473,7 @@ _ctng_setup(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							done 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							( eval "${setuptasks[@]}" ) 2>&1; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						else 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							echo -e "$CTNG_ROOT_BUILD_ERROR$CTNG_ROOT_BUILD_CMD"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							echo -e "\nERROR -> The execution of crosstool-NG was aborted\n         because it must not run as root!\n";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						fi; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						) | tee "$logfile" | "$gui" "$st_" "$bt_" "$title_ - \Z0$pdesc\Zn" "--colors" "--title" " -[ Setup crosstool-NG ]- " "$pb_" "$_lines" "$_cols"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					}; 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -658,6 +644,19 @@ _check_pkg(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							echo -e "$r_l""\nCHECK -> You need to manually install the following packages to use this plugin properly:\n"$y_l"$prefix apt install$packages\n""$re_" && _paktc_timer 10; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						fi; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					}; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					_check_config(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						nok=0; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						[ -z ${CTNG_CONFIG_tasks+x} ] && nok=1; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						[ -z ${CTNG_BUILD_AS_ROOT+x} ] && nok=1; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						[ -z ${LIBS+x} ] && nok=1; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						if [ $nok -eq 1 ]; then  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							clear; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							echo -e "$r_l""\nCHECK -> Your config file seems to be outdated. Please restart s3 as follows to recreate an updated config file:\n"$y_l"./s3 tcupdate -r\n""$re_"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							_paktc_timer 10; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							return $nok; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						fi; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					};	 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					_check_github_api_limits(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						limit=$(curl --silent "https://api.github.com/rate_limit" | jq -r '.resources.core.limit'); 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -677,40 +676,6 @@ _check_github_api_limits(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							return 1; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						fi; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					}; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					_check_config(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						nok=0; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						[ -z ${CTNG_CONFIG_tasks+x} ] && nok=1; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						[ -z ${CTNG_BUILD_AS_ROOT+x} ] && nok=1; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						[ -z ${LIBS+x} ] && nok=1; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						if [ $nok -eq 1 ]; then  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							clear; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							echo -e "$r_l""\nCHECK -> Your config file seems to be outdated. Please restart s3 as follows to recreate an updated config file:\n"$y_l"./s3 tcupdate -r\n""$re_"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							_paktc_timer 10; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							return $nok; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						fi; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					};	 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					_change_config(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						nok=1; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						ts="$(date +%F) $(date +%T)"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						[[ ! $2 =~ "(" ]] && [[ ! $string =~ ")" ]] && qte="\"" || qte=""; #no quotes if value contains parentheses 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						if ! grep -Eq "^$1=.*" "$configname";then 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							echo -e "$r_l""\nCHECK -> Variable "$y_l"$1"$r_l" does not exist in the configuration file!\n""$re_"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							_paktc_timer 10; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						elif [ "${1:(-6)}" == "_tasks" ];then 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							echo -e "$r_l""\nCHECK -> Modifying "$y_l"tasks-variables"$r_l" not implemented yet!\n""$re_"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							_paktc_timer 10; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						else 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							sed -i "s#^$1=.*#$1=$qte$2$qte; \#changed on $ts via tcupdate commandline#g" "$configname"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							result=$(grep -E "^$1=.*" "$configname" | awk '{printf $1}'); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							echo -e "$g_l""\nDONE -> Variable changed to: "$y_l"$result\n""$re_"; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							_paktc_timer 5; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
							nok=0; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						fi; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						return $nok; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					}; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					_create_config(){ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						#check existing jq 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
						if [ ! $(which jq) ];then