You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

247 lines
5.4 KiB

#!/bin/bash
checkout(){
echo -en "$c_l"
fc1="$(mktemp)"
clear
ologo
i=0
COUNT=0
if [ -d "$svndir" ]
then
rm -rf "$svndir"
printf "$p_l\n $txt_delete oscam-svn $re_\n"
else
printf "$p_l\n $txt_no oscam-svn $txt_found\n$re_"
fi
printf "$w_l SVN TrunkURL : $g_l$trunkurl$re_"
[ ! -z "$1" ] && [ $(($1)) -gt 6999 ] && opt_="-r$1" && mac_="($txt_selected)" || opt_=''
printf "\n$w_l SVN FileCount : "
svn info -R "$trunkurl" |grep '^URL' |uniq |wc -l >"$fc1"
n=$(cat "$fc1")
printf "$g_l""$txt_found $n"
printf "\n$w_l SVN checkout : "
while read line filename
do
counter=$(( 100*(++i)/n))
tput cup 10 18
[ "$counter" -lt "100" ] && echo -en "$g_l""$counter%$re_" || echo -e "$g_l""100%$re_"
done < <( svn co "$trunkurl" $opt_ "$svndir" |sed "s|$svndir/||g")
tput cup 10 18;
echo -e "$g_l""100%$re_"
if [ -f "$svndir/config.sh" ]
then
tput cup 11 0;
printf "$w_l SVN Revision :$y_l $("$svndir/config.sh" -r) $b_l$mac_$re_\n$w_l SVN UserPath :$y_l $svndir"
fi
[ -f "$svndir/config.h" ]&& reset_="$("$svndir/config.sh" -R)"
rm -rf "$fc1"
_nl
[ -f "$workdir/SVN-IS-PATCHED" ] && rm -f "$workdir/SVN-IS-PATCHED"
[ -f "$workdir/EMU_ON" ] && rm -f "$workdir/EMU_ON"
tarsvn
}
svnrestore(){
clear
echo -en "$c_l"
ologo
if [ "$1" == "list" ]
then
cd "$bsvn"
bfiles="$(find . -type f |sed 's|./||' |sed 's|.tar.gz||')"
bcount=$(echo "$bfiles" |wc -w)
if [ "$bcount" -gt "0" ]
then
echo -e "\n$c_l $bcount$w_l svn backups found\n ____________________$re_\n"
for b in $bfiles
do
echo -e "$c_l --> $w_l$b"
done
_nl
else
echo -e "\n$r_l $bcount$w_l svn backups found\n ____________________$re_\n"
fi
exit
fi
if [ -d "$svndir" ]
then
rm -rf "$svndir"
printf "$p_l\n $txt_delete $txt_existing oscam-svn $re_\n"
else
printf "$p_l\n $txt_no oscam-svn $txt_found\n$re_"
fi
untarsvn $1
[ -f "$svndir/config.h" ]&& printf "$w_l"" SVN Revision : $y_l""$("$svndir/config.sh" -r) restored\n\n$re_"
[ -L "$workdir/lastbuild.log" ]&& rm "$workdir/lastbuild.log";
[ -L "$workdir/lastpatch.log" ]&& rm "$workdir/lastpatch.log";
[ -f "$workdir/SVN-IS-PATCHED" ] && rm -f "$workdir/SVN-IS-PATCHED";
[ -f "$workdir/EMU_ON" ] && rm -f "$workdir/EMU_ON";
}
quicksvnrestore(){
untarsvn $1
}
svnup(){
printf "$c_l"
clear
ologo
i=1
if [ -d "$svndir" ]
then
printf "$p_l\n $txt_update oscam-svn $re_\n"
else
checkout
return
fi
printf "\n$w_l SVN TrunkURL : $g_l""$trunkurl""$re_"
svn co "$trunkurl" "$svndir" -q
if [ -f "$svndir/config.sh" ]
then
tput cup 10 2
printf "\n$w_l SVN Revision : ""$y_l$("$svndir/config.sh" -r) $b_l$mac_$re_\n$w_l SVN UserPath : $y_l""$svndir\n$re_"
fi
if [ -f "$svndir/config.h" ]
then
reset_="$("$svndir/config.sh" -R)"
fi
}
svnpatch(){
if [ ! -f "$workdir/SVN-IS-PATCHED" ]
then
clear
printf $C
ologo
unset patchlist
cd "$pdir"
patchlist=(*.patch)
if [ "$(ls -A "$pdir"/*.patch 2>/dev/null)" ]
then
touch "$workdir/SVN-IS-PATCHED"
for p in "${patchlist[@]}"
do
echo -e $WH"\n\n -> $p <-\n"$W
sleep 1
patch -d$svndir/ -p0 < "$pdir/$p" |sed -e "s/^patching file/$G patching > $WH/g;s/^Hunk/$P Hunk > $Y/g;s/FAILED/$R FAILED/g; ;s/-- saving/$Y -- saving/g;"
done
else
printf $WH" $txt_no patch $txt_found"
fi
else
clear
printf $C
ologo
printf $WH" already patched"
fi
echo -e $W
}
_dialog_checkout(){
upc="$(mktemp)"
(printf " $txt_verify_syscheck "
[ "$sanity" == "1" ] && printf "ok\n" && sleep 1;
if [ "${s3cfg_vars[NO_SVN_AUTOUPDATE]}" == "0" ]
then
printf " $txt_verify_svn "
if [ -f "$svndir/config.sh" ]
then
printf "ok\n"
sleep 1
printf " $txt_update_svn $txt_wait\n"
cd "$svndir"
svn -q update
echo 1 >"$upc"
sleep 1
fi
fi;) | "$gui" "$st_" "$bt_" "$title_" "$pb_" 5 52
if [ "${s3cfg_vars[NO_SVN_AUTOUPDATE]}" == "0" ]
then
upc1=$(cat "$upc" 2>/dev/null)
rm -f "$upc"
[ ! "$upc1" == "1" ] && _dialog_checkout1
if [ -f "$svndir/config.sh" ]
then
reset_="$("$svndir/config.sh" -R)"
fi
_get_config_menu
fi
if [ -n "$1" ]
then
if [ -f "$tccfgdir/$1" ] && [ -f "$svndir/config.sh" ]
then
source "$tccfgdir/$1"
if [ ! -f "$tcdir/$_toolchainname/bin/$_compiler""gcc" ]
then
first="$1"
_toolchain_gui_install
fi
loadprofile="yes"
_toolchain_build_menu "$1"
else
_select_menu
fi
fi
_select_menu
}
_dialog_checkout1(){
rm -rf "$svndir" 2>/dev/null
COUNT=0
[ -z "$1" ] && rn=0 || rn="$1"
if [ "$rn" -ge "7000" ]
then
_rev="-r $rn"
sc_text="Revision: $rn"
else
_rev=''
sc_text="$txt_latest"
fi
(printf "$txt_prepare_svn $txt_wait";)| "$gui" "$st_" "$bt_" "$title_" "$pb_" 3 55
nnn="$(svn info $_rev -R "$trunkurl" |grep "^URL: " |uniq |wc -l)"
"$gui" "$st_" "$bt_" "$title_" --title " -[ SVN Checkout $sc_text ]- " --gauge " $txt_wait" 6 75 < <(while read line filename;do ((++i));PCT=$(( 100*i/(nnn+1) ))
cat <<EOF
XXX
$PCT
$line
XXX
EOF
done < <(svn co "$trunkurl" "$svndir" $_rev| sed "s@$svndir@@g"| awk '{print $2}'
cd "$svndir"
if [ -f "$svndir/config.sh" ]
then
reset_="$("$svndir/config.sh" -R)"
printf "Revision: $(REVISION) done..."
[ -f "$workdir/SVN-IS-PATCHED" ] && rm -f "$workdir/SVN-IS-PATCHED"
[ -f "$workdir/EMU_ON" ] && rm -f "$workdir/EMU_ON"
_get_config_menu
fi;))
}
REVISION(){
[ -d "$svndir" ] && cd "$svndir" && svnversion -n . 2>/dev/null| sed 's/[^0-9]//g' || printf " nosvn "
}