#!/bin/bash get_patch(){ _get_patch; } _get_patch(){ cd $pdir [ -f patch.url ] && source patch.url clear printf $C ologo printf $WH; [ -f $PATCHNAME ] && printf "$Y $PATCHNAME $txt_found\n $txt_delete $P$PATCHNAME" && rm -f $PATCHNAME printf $W"\n $txt_load $PATCHNAME" if [[ `wget -S --spider $PATCHURL 2>&1 | grep 'HTTP/1.1 200 OK'` ]] then wget -q -O$PATCHNAME $PATCHURL [ -f $PATCHNAME ] && printf $G" ok$W\n\n" else printf $R"\n\n $PATCHURL\n\n >> $txt_not_found <<$W\n\n" fi } _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" printf "PATCH : apply $e" patch -f -p1 < "$pdir/$e" >>"$patchlog" 2>/dev/null hunks=$(grep -c1 '^Hunk' "$patchlog") fails=$(grep -c1 'hunks FAILED' "$patchlog") if [ "$hunks" -gt "0" ] then printf "PATCH : $hunks x HUNK for $e" _w="hunk" fi if [ "$fails" -gt "0" ] then printf "PATCH : $fails x FAILS for $e" _w="fail" fi done case $_w in ok) printf "PATCH : done all ok" touch "$workdir/SVN-IS-PATCHED";; hunk) printf "PATCH : done with warnings save $e.log" cp -f $patchlog "$ldir/$e.log" ln -sf "$ldir/$e.log" "$workdir/lastpatch.log" touch "$workdir/SVN-IS-PATCHED";; fail) printf "PATCH : break build save $e.log" cp -f $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" printf "$y_l\n | PATCH : apply $e" patch -F 10 -f -p1 < "$pdir/$e" >>"$patchlog" 2>/dev/null hunks=$(grep -c1 "^Hunk" "$patchlog") fails=$(grep -c1 "hunks FAILED" "$patchlog") if [ "$hunks" -gt "0" ] then printf "$y_l\n | PATCH :$w_l $hunks x HUNK for $e" _w=1 fi if [ "$fails" -gt "0" ] then printf "$y_l\n | PATCH :$r_n FAIL (breaking Build) = $fails" printf "$w_l\n | 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 printf "$y_l\n | PATCH : done with warnings" touch "$workdir/SVN-IS-PATCHED" else printf "$y_l\n | PATCH :$g_l done all ok$rs_" touch "$workdir/SVN-IS-PATCHED" fi else printf "$y_l\n | PATCH : no patch found\n" fi fi }