#!/bin/bash get_patch(){ _get_patch; }; _get_patch(){ cd $pdir; [ -f patch.url ] && source patch.url; clear; echo -e $C; ologo; echo -e $WH; [ -f $PATCHNAME ] && echo -e "$Y old patch found\n remove $P$PATCHNAME" && rm -f $PATCHNAME; echo -e $W" load $PATCHNAME"; wget -q -O$PATCHNAME $PATCHURL; [ -f $PATCHNAME ] && echo -e $G" ok$W new $PATCHNAME loadet\n" || echo -e $R" patch not found\n"$W; }; _apply_menupatch(){ [ -f "$workdir/SVN-IS-PATCHED" ] && quicksvnrestore $_toolchainname 2>/dev/null; cd "$pdir"; (if [ "$(ls -1 "$pdir"/*.patch 2>/dev/null | wc -l)" -gt "0" ];then cd "$pdir"; unset patchlist;patchlist=`ls *.patch | sort -st '/' -k1,1`; patchlog="$(mktemp)"; for e in ${patchlist[@]};do _w="ok"; cd "$svndir"; echo "PATCH : apply $e"; patch -f -p0 < "$pdir/$e" >>"$patchlog" 2>/dev/null; hunks=$(grep -c1 '^Hunk' "$patchlog"); fails=$(grep -c1 'hunks FAILED' "$patchlog"); if [ "$hunks" -gt "0" ];then echo "PATCH : $hunks x HUNK for $e"; _w="hunk"; fi; if [ "$fails" -gt "0" ];then echo "PATCH : $fails x FAILS for $e"; _w="fail"; fi; done; case $_w in ok) echo "PATCH : done all ok"; touch "$workdir/SVN-IS-PATCHED";; hunk) echo "PATCH : done with warnings save $e.log"; cat $patchlog >>"$ldir/$e.log"; ln -sf "$ldir/$e.log" "$workdir/lastpatch.log"; touch "$workdir/SVN-IS-PATCHED";; fail) echo "PATCH : break build save $e.log"; cat $patchlog >>"$ldir/$e.log"; ln -sf "$ldir/$e.log" "$workdir/lastpatch.log"; touch "$workdir/SVN-IS-PATCHED";; esac; rm -rf "$patchlog"; fi;)|"$gui" "$st_" "$bt_" "$title_" "$pb_" 12 62;sleep 2; }; _apply_consolepatch(){ if [ ! -f "$workdir/SVN-IS-PATCHED" ];then cd "$pdir"; if [ "$(ls -1 "$pdir"/*.patch 2>/dev/null | wc -l)" -gt "0" ];then unset patchlist;patchlist=`ls *.patch | sort -st '/' -k1,1`; patchlog="$(mktemp)"; for e in ${patchlist[@]};do _w=0;cd "$svndir"; echo -e "$y_l | PATCH : apply $e"; patch -F 10 -f -p0 < "$pdir/$e" >>"$patchlog" 2>/dev/null; hunks=$(grep -c1 "^Hunk" "$patchlog"); fails=$(grep -c1 "hunks FAILED" "$patchlog"); if [ "$hunks" -gt "0" ];then echo -e "$y_l | PATCH :$w_l $hunks x HUNK for $e"; _w=1; fi; if [ "$fails" -gt "0" ];then echo -e "$y_l | PATCH :$r_n FAIL (breaking Build) = $fails"; echo -en "$w_l | RESTORE :$c_w LAST SVN BACKUP in "; for (( i=6; i>0; i--));do sleep 1 & echo -en "$i\b"; wait; done; svnrestore lastsvn; exit; fi; cat $patchlog >"$ldir/$e.log"; ln -sf "$ldir/$e.log" "$workdir/lastpatch.log"; done; rm -rf "$patchlog"; if [ "$_w" -gt "0" ];then echo -e "$y_l | PATCH : done with warnings"; touch "$workdir/SVN-IS-PATCHED"; else echo -e "$y_l | PATCH :$g_l done all ok$rs_"; touch "$workdir/SVN-IS-PATCHED"; fi; else echo -en "$y_l | PATCH : no patch found\n"; fi; fi; };