18 Star 33 Fork 8

darcyg / wrtoy

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
build 34.00 KB
一键复制 编辑 原始数据 按行查看 历史
darcyg 提交于 2016-07-08 15:11 . [2016-07-08 15:11:13] update or fix bug ..
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157
#!/bin/bash
source common/common.sh common
function action_upgrade_feeds()
{
cd $op_dir
local fn
[ -z "$feeds_name" ] && feeds_name="all"
echo $feeds_name
[ "$feeds_name" == "-" ] && feeds_name="commonpack, scpack"
[ "$feeds_name" == "c" ] && feeds_name="commonpack"
[ "$feeds_name" == "s" ] && feeds_name="scpack"
[ "$feeds_name" == "all" ] && fn="-a" || fn="$feeds_name"
show i $(lang "upgrade feeds: $feeds_name" "升级feeds仓库: $feeds_name")
[ "$feeds_name" == "commonpack, scpack" ] && {
$doProxy ./scripts/feeds update "commonpack"
$doProxy ./scripts/feeds update "scpack"
$doProxy ./scripts/feeds install -a
exit 0
} || $doProxy ./scripts/feeds update "$fn"
[ "$fn" == "-a" ] && fn=""
[ -n "$fn" ] || $doProxy ./scripts/feeds install -a && {
cd $op_root
local ff=$(./hardware_manage -gff "$fn")
cd $op_dir
#echo "== $ff =="
[ "$ff" == "1" ] && {
#echo A
$doProxy ./scripts/feeds install -f -a -p "$fn"
} || {
#echo B
$doProxy ./scripts/feeds install -a -p "$fn"
}
}
#"$fn"
#exit 0
}
function action_upgrade_custom_feeds()
{
feeds_name="-"
action_upgrade_feeds
exit 0
}
function action_use_proxy()
{
if [ $use_proxy == true ]; then
local has_proxy=$(netstat -apnl 2>/dev/null | grep $proxy_port)
[ ! -z "$has_proxy" ] && ( doProxy="proxychains"; \
show s $(lang "used ssh proxy($proxy_port)" "检测到ssh代理服务端口($proxy_port)")) || \
show s $(lang "no ssh proxy" "没有ssh代理服务")
doProxy="proxychains"
fi
doAction=true
}
function action_verbose()
{
doVerbose="V=s"
}
function action_install_new_openwrt()
{
show i $(lang "install openwrt base form git" "安装openwrt基本平台")
cd $op_root
./openwrt_synchro -f
cd ./packages/
./init.sh
exit 0
}
function action_reset_current_openwrt()
{
show i $(lang "reinstall openwrt base form git" "重新安装openwrt基本平台")
cd $op_root
./openwrt_synchro -m ch -f
cd ./packages/
./init.sh
exit 0
}
function action_install_release_openwrt()
{
show i $(lang "install openwrt base form git(release version)" "重新安装openwrt基本平台(release版本)")
cd $op_root
./openwrt_synchro -m rh -f
cd ./packages/
./init.sh
exit 0
}
function action_install_beta_openwrt()
{
show i $(lang "install openwrt base form git(beta version)" "重新安装openwrt基本平台(beta版本)")
cd $op_root
./openwrt_synchro -m bh -f
cd ./packages/
./init.sh
exit 0
}
function action_download_package()
{
show i $(lang "download all package source code" "下载所选模块所有源码包")
cd $op_dir
if [ $download_proxy_package == true ]; then
svpn.sh -r
use_proxy=true
action_use_proxy
fi
$doProxy make download $doVerbose $doMakeJ
exit 0
}
function action_restart_tftp()
{
show i $(lang "restart tftp server" "启动tftp服务")
sudo service tftpd-hpa restart
exit 0
}
function action_make_usb_image_disk()
{
show i $(lang "copy firmware file to usb driver" "拷贝产生的固件文件到usb盘")
cd $op_root
local bn=$(./hardware_manage -gv bn)
local bt=$(./hardware_manage -gv bt)
local pf=$(./hardware_manage -gv pf)
local pn=$(./hardware_manage -gv pn)
local cn=$(./hardware_manage -gv cn)
local tr=$(./hardware_manage -gv tr)
local tl=$(./hardware_manage -gv tl)
local bf=$(./hardware_manage -gv bf)
local ud=$(./hardware_manage -gv ud)
local mnt=$ud
local src="$op_dir/bin/$pf/$bf"
#local nbf=$(basename $bf .bin)"_"$(now).bin
#local mnt=$(df -h | grep $ud | awk '{print $6}')
if [ ! -e "$ud" ]; then
show s $(lang "usb disk($ud) not exists" "目标usb盘($ud)不存在")
exit 0
fi
#local dst="$mnt/$nbf"
#echo $src
#echo $dst
#echo $link
local fsize
local fsizeh
local fdtime
local fhash
src=$tr/$tl
if [ -f "$src" ]; then
[ -f "$dst" ] && rm $dst
fsize=$(ls -l $src | awk '{print $5}')
fsizeh=$(ls -lh $src | awk '{print $5}')
fhash=$(md5sum -b $src | awk '{print $1}')
show s $(lang "new file" "拷贝文件:") $ud
lang " filesize: $fsize byte ($fsizeh) md5:$fhash" " 文件大小: $fsize 字节 ($fsizeh) md5:$fhash"
local dmode=$(stat -c "%a" $ud)
[ "$dmode" == "666" -o "$dmode" == "777" ] && dd if=$src of=$ud bs=512 conv=fsync || sudo dd if=$src of=$ud bs=512 conv=fsync
#sync
else
show s $(lang "no file copy." "没有文件被复制")
fi
exit 0
}
function action_copy_usb_image_disk()
{
show i $(lang "copy firmware file to usb directory" "拷贝产生的固件文件到usb目录")
cd $op_root
local bn=$(./hardware_manage -gv bn)
local bt=$(./hardware_manage -gv bt)
local pf=$(./hardware_manage -gv pf)
local pn=$(./hardware_manage -gv pn)
local cn=$(./hardware_manage -gv cn)
local tr=$(./hardware_manage -gv tr)
local tl=$(./hardware_manage -gv tl)
local bf=$(./hardware_manage -gv bf)
local ud=$(./hardware_manage -gv ud)
local src="$op_dir/bin/$pf/$bf"
local nbf=$(basename $bf .bin)"_"$(now).bin
local mnt=$(df -h | grep $ud | awk '{print $6}')
if [ ! -d "$mnt" ]; then
show s $(lang "usb directory($ud) not exists" "目标usb目录($ud)不存在")
exit 0
fi
local dst="$mnt/$nbf"
#echo $src
#echo $dst
#echo $link
local fsize
local fsizeh
local fdtime
local fhash
if [ -f "$src" ]; then
[ -f "$dst" ] && rm $dst
fsize=$(ls -l $src | awk '{print $5}')
fsizeh=$(ls -lh $src | awk '{print $5}')
fhash=$(md5sum -b $src | awk '{print $1}')
fdtime=$(stat -c %y $src | awk -F. '{print $1}')
show s $(lang "new file" "拷贝文件:") $dst " ($fdtime)"
lang " filesize: $fsize byte ($fsizeh) md5:$fhash" " 文件大小: $fsize 字节 ($fsizeh) md5:$fhash"
cp -f $src $dst
sync
else
show s $(lang "no file copy." "没有文件被复制")
fi
exit 0
}
function action_clear()
{
show i $(lang "clear project" "清除项目")
cd $op_dir
if [ $clear_temp == true ]; then
rm -rf ./tmp
elif [ $clear_dir == true ]; then
make dirclean $doVerbose $doMakeJ
else
make clean $doVerbose $doMakeJ
fi
exit 0
}
function action_backup_config()
{
show i $(lang "backup openwrt config" "备份openwrt配置")
[ -z "$backup_config" ] && exit 0
cd $op_dir
show s $(lang "copy .config to config.$backup_config" "拷贝 .config 为 config.$backup_config")
cp .config config.$backup_config
}
function action_recover_config()
{
show i $(lang "recover openwrt config" "恢复openwrt配置")
[ -z "$recover_config" ] && exit 0
cd $op_dir
show s $(lang "copy config.$backup_config to .config" "拷贝 config.$backup_config 为 .config")
cp config.$recover_config .config
}
function action_show_diff_config()
{
show i $(lang "show openwrt config diff" "显示openwrt配置差异")
cd $op_dir
local difftool=$(which bcompare)
local prefix="config."
local pp1=".config"
local pp2=".config"
local ppmode="-rupN"
[ ! -f "$difftool" -o "$pmode" != "-" ] && difftool=diff
#[ -z "$pmode" -o "$pmode" == "--" ] || prefix=""
[ -z "$pmode" -o "$pmode" == "-" -o "$pmode" == "--" ] || ppmode=$pmode
[ -z "$p1" -o "$p1" == "-" ] || pp1=$prefix$p1
[ -z "$p2" -o "$p2" == "-" ] || pp2=$prefix$p2
#[ "$difftool" == "diff" ] || ppmode="&"
echo "command: $difftool $pp1 $pp2 $ppmode"
$difftool $pp1 $pp2 $ppmode
}
function action_build()
{
show i $(lang "build openwrt" "编译openwrt")
action_publish_upgrade > /dev/null 2>&1
cd $op_dir
if [ -z "$build_j" ]; then
make defconfig
$doProxy make $doVerbose $doMakeJ
else
make defconfig
$doProxy make -j $build_j -l9 $doVerbose
fi
}
function action_build_image()
{
show i $(lang "build openwrt image" "仅编译openwrt镜像")
cd $op_dir
make defconfig
if [ ! -z "$package_name" ]; then
$doProxy make package/$package_name/compile $doVerbose $doMakeJ
$doProxy make package/$package_name/install $doVerbose $doMakeJ
fi
$doProxy make package/install $doVerbose $doMakeJ
$doProxy make target/install $doVerbose $doMakeJ
$doProxy make package/index $doVerbose $doMakeJ
}
function action_build_image_packages()
{
show i $(lang "build openwrt image package install" "仅编译openwrt镜像-包集合")
cd $op_dir
make defconfig
if [ ! -z "$package_name" ]; then
$doProxy make package/$package_name/compile $doVerbose $doMakeJ
$doProxy make package/$package_name/install $doVerbose $doMakeJ
fi
$doProxy make package/install $doVerbose $doMakeJ
}
function action_build_image_linux()
{
show i $(lang "build openwrt image linux install" "仅编译openwrt镜像-Linux")
cd $op_dir
make defconfig
$doProxy make target/install $doVerbose $doMakeJ
}
function action_build_image_index()
{
show i $(lang "build openwrt image package index" "仅编译openwrt镜像-包索引")
cd $op_dir
make defconfig
$doProxy make package/index $doVerbose $doMakeJ
}
function action_copy_tftp()
{
show i $(lang "copy firmware file to tftp root directory" "拷贝产生的固件文件到tftp的固件目录")
cd $op_root
local bn=$(./hardware_manage -gv bn)
local bt=$(./hardware_manage -gv bt)
local pf=$(./hardware_manage -gv pf)
local pn=$(./hardware_manage -gv pn)
local cn=$(./hardware_manage -gv cn)
local tr=$(./hardware_manage -gv tr)
local tl=$(./hardware_manage -gv tl)
local bf=$(./hardware_manage -gv bf)
local src="$op_dir/bin/$pf/$bf"
local srcdir="$op_dir/bin/$pf/"
[ "$pf" == "rpi" -o "$pf" == "rpi2" ] && src="$op_dir/bin/$cn/$bf"
local dst="$tr/$pn/$bf"
local link="$tr/$tl"
#echo $src
#echo $dst
#echo $link
local fsize
local fsizeh
local ofsize
local ofsizeh
local ofhash
local ofdtime
local fdtime
local fhash
#exit 0
if [ -L "$link" ]; then
ofsize=$(ls -l $tr/$pn/$(basename $(readlink $link)) | awk '{print $5}')
ofsizeh=$(ls -lh $tr/$pn/$(basename $(readlink $link)) | awk '{print $5}')
ofhash=$(md5sum -b $tr/$pn/$(basename $(readlink $link)) | awk '{print $1}')
ofdtime=$(stat -c %y $tr/$pn/$(basename $(readlink $link)) | awk -F. '{print $1}')
show s $(lang "old file" "原 文 件:") $(basename $(readlink $link)) "=>" $tl " ($ofdtime)"
lang " filesize: $ofsize byte ($ofsizeh) md5:$ofhash" " 文件大小: $ofsize 字节 ($ofsizeh) md5:$ofhash"
echo "link $tl exists! rm $tl file!"
rm -f $link
fi
if [ -f "$src" ]; then
[ -f "$dst" ] && rm $dst
fsize=$(ls -l $src | awk '{print $5}')
fsizeh=$(ls -lh $src | awk '{print $5}')
fhash=$(md5sum -b $src | awk '{print $1}')
fdtime=$(stat -c %y $src | awk -F. '{print $1}')
show s $(lang "new file" "生成文件:") $tl "=>" $bf " ($fdtime)"
lang " filesize: $fsize byte ($fsizeh) md5:$fhash" " 文件大小: $fsize 字节 ($fsizeh) md5:$fhash"
[ ! -z "$ofhash" -a ! -z "$fhash" -a "$ofhash" != "$fhash" ] && show s $(lang "file chanage!" "文件发生变更")
[ ! -z "$ofhash" -a ! -z "$fhash" -a "$ofhash" == "$fhash" ] && show s $(lang "file no chanage!" "文件一致")
#cp -f $src $dst
if [ -d "$tr/$pn" ]; then
rm -rf "$tr/$pn"
fi
mkdir -p "$tr/$pn"
if [ -d "$srcdir" ]; then
cp -f $srcdir/*.bz2 "$tr/$pn"
cp -f $src $dst
fi
ln -s $pn/$(basename $dst) $link
else
show s $(lang "no file copy." "没有文件被复制")
fi
}
function action_make_package()
{
show i $(lang "make package" "编译package")
cd $op_dir
[ -z "$package_name" ] && exit 0
local pn="compile"
[ $make_package == true ] && pn="compile"
[ $make_package_install == true ] && pn="install"
[ $make_package_download == true ] && pn="download"
[ $make_package_clean == true ] && pn="clean"
[ $make_package_refresh == true ] && pn="refresh"
[ $make_package_index == true ] && pn="Index"
make defconfig
[ "$pn" == "Index" ] && make package/index || $doProxy make package/$package_name/$pn $doVerbose $doMakeJ
exit 0
}
function action_make_menu()
{
show i $(lang "make menuconfig" "执行menuconfig(openwrt功能定制)")
cd $op_dir
make menuconfig $doVerbose
exit 0
}
function action_make_kernel_menu()
{
show i $(lang "make kernel menuconfig" "执行kernel menuconfig(linux内核定制)")
cd $op_dir
make kernel_menuconfig $doVerbose
exit 0
}
function action_make_defconfig()
{
show i $(lang "make defconfig" "执行Openwrt配置依赖关系梳理(清除无效配置,检测并设置依赖关系)")
cd $op_dir
make defconfig $doVerbose
exit 0
}
function action_make_j()
{
[ ! -z "$make_j" ] && doMakeJ="" || doMakeJ="-j $make_j -l9"
}
function action_patch_openwrt()
{
show i $(lang "patch project(app)" "给当前openwrt打上项目应用补丁")
[ -z "$proj_name" ] && proj_name=$(./hardware_manage -gv pn)
cd $op_root
local board_type=$(./hardware_manage -gv pf)
$doProxy ./patch_openwrt.py proj -t $board_type $proj_name -w
}
function action_patch_platform()
{
show i $(lang "patch project(platform)" "给当前openwrt打上项目平台补丁")
cd $op_root
local board_platform=$(./hardware_manage -gv pf)
local board_type=$(./hardware_manage -gv bp)
[ -z "$patch_platform" ] && board_type="$patch_platform"
$doProxy ./patch_openwrt.py proj -t $board_platform $board_type -w -P
}
function action_patch_host()
{
show i $(lang "patch project(host)" "给当前openwrt打上项目交叉编译补丁")
cd $op_root
$doProxy ./patch_openwrt.py proj -H -w empty
}
function action_publish_upgrade()
{
show i $(lang "publish sysupgrade firmware info" "openwrt发布升级固件信息")
cd $op_root
local bn=$(./hardware_manage -gv bn)
local bt=$(./hardware_manage -gv bt)
local pf=$(./hardware_manage -gv pf)
local pn=$(./hardware_manage -gv pn)
local cn=$(./hardware_manage -gv cn)
local tr=$(./hardware_manage -gv tr)
local tl=$(./hardware_manage -gv tl)
local bf=$(./hardware_manage -gv bf)
local pbc=$(./hardware_manage -gv pbc)
local pbt=$(./hardware_manage -gv pbt)
local pbn=$(./hardware_manage -gv pbn)
local pbv=$(./hardware_manage -gv pbv)
local pbd=$(./hardware_manage -gv pbd)
local uu=$(./hardware_manage -gv uu)
local ua=$(./hardware_manage -gv ua)
local link="$tr/$tl"
local cfgfile=""
local ofile=$tr/$(basename $(readlink $link))
local nowdate=$(date +%Y-%m-%dT%H:%M:%S)
local ofhash=$(md5sum -b $ofile | awk '{print $1}')
local ofsize=$(ls -l $ofile | awk '{print $5}')
local ofdtime=$(stat -c %y $ofile | awk -F. '{print $1}' | awk '{print $1"T"$2}')
local gitcommit=$(git log -1 --format=%H)
local diffdata=$(git diff)
local ofver="v1.0.0-beta"
[ ! -z "$diffdata" ] && gitcommit="$gitcommit +"
opt=".platform.factory=\"$pf\""
opt="$opt | .platform.chip=\"$pbc\""
opt="$opt | .platform.boardtype=\"$pbt\""
opt="$opt | .platform.boardname=\"$pbn\""
opt="$opt | .platform.boardver=\"$pbv\""
opt="$opt | .platform.boarddate=\"$pbd\""
opt="$opt | .firmware.build=\"$nowdate\""
opt="$opt | .firmware.filename=\"$bf\""
opt="$opt | .firmware.md5=\"$ofhash\""
opt="$opt | .firmware.git=\"$gitcommit\""
opt="$opt | .firmware.publish=\"beta\""
opt="$opt | .upgrade.url=\"$uu\""
opt="$opt | .upgrade.useragent=\"$ua\""
# project-firstrun
cfgdir=$op_dir/custom-feeds/common-system-fix/$pn-firstuprun/files/etc
#echo $cfgdir
if [ -d $cfgdir/ ]; then
if [ -f $cfgdir/set-upgrade ]; then
cfgf=$(cat $cfgdir/set-upgrade)
else
cfgf="{}"
fi
fver=$(echo "$cfgf" | jq '.firmware.version' -r)
[ ! -z "$fver" ] && ofver="$fver"
echo "================================================="
echo " write : set-upgrade "
echo "================================================="
echo "$cfgf" | jq "$opt" -r
echo "$cfgf" | jq "$opt" -c > $cfgdir/set-upgrade
fi
# firstrun
cfgdir=$op_dir/custom-feeds/common-system-fix/firstuprun/files/etc
if [ -d $cfgdir ]; then
if [ -f $cfgdir/set-upgrade ]; then
cfgf=$(cat $cfgdir/set-upgrade)
else
cfgf="{}"
fi
fver=$(echo "$cfgf" | jq '.firmware.version' -r)
[ ! -z "$fver" ] && ofver="$fver"
echo "================================================="
echo " write : set-upgrade "
echo "================================================="
echo "$cfgf" | jq "$opt" -r
echo "$cfgf" | jq "$opt" -c > $cfgdir/set-upgrade
fi
urlfw=$(dirname $uu)
opt="$opt | .upgrade.mode=\"null\""
opt="$opt | .upgrade.firmware.url=\"$urlfw/$bf\""
opt="$opt | .upgrade.firmware.md5=\"$ofhash\""
opt="$opt | .upgrade.firmware.version=\"${ofver}-$ofhash\""
opt="$opt | .upgrade.firmware.size=\"$ofsize\""
opt="$opt | .upgrade.firmware.build=\"$ofdtime\""
cfgdir=$tr
if [ -d $cfgdir ]; then
if [ -f $cfgdir/$pn.json ]; then
cfgf=$(cat $cfgdir/$pn.json)
else
cfgf="{}"
fi
echo "================================================="
echo " write : $pn.json "
echo "================================================="
echo "$cfgf" | jq "$opt" -r
echo "$cfgf" | jq "$opt" -c > $cfgdir/$pn.json
fi
cfgdir=$tr
if [ -d $cfgdir ]; then
if [ -f $cfgdir/$pn.$pf.json ]; then
cfgf=$(cat $cfgdir/$pn.$pf.json)
else
cfgf="{}"
fi
echo "================================================="
echo " write : $pn.$pf.json "
echo "================================================="
echo "$cfgf" | jq "$opt" -r
echo "$cfgf" | jq "$opt" -c > $cfgdir/$pn.$pf.json
fi
# project-admin-ui
# cfgdir=$op_dir/custom-feeds/common-system-fix/$pn-admin-ui
# open-public-admin-ui
# cfgdir=$op_dir/custom-feeds/common-system-fix/open-public-admin-ui
}
function action_mount_fs()
{
show i $(lang "mount/umount remote server fs to localhost" "映射远程服务器地址到本机")
cd $op_root
local rr=$(./hardware_manage -gv rr)
local lr=$(./hardware_manage -gv lr)
[ -z "$rr" -o -z "$lr" ] && {
show i $(lang "error config" "配置错误")
exit 0
}
if [ ! -d "$lr" ]; then
mkdir -p "$lr"
else
local trr=$(df -h | grep ${lr:0:-1} | awk '{print $1}')
#echo $rr $trr
[ "$trr" == "$rr" ] && {
show i $(lang "remote fs exist" "远程目录已经mount挂载")
exit 0
}
[ ! -z "$trr" ] && sudo umount $lr
fi
show i $(lang "- sshfs: $rr mount at $lr" "- sshfs: $rr 挂载到 $lr")
sshfs $rr $lr
}
function action_umount_fs()
{
show i $(lang "mount/umount remote server fs to localhost" "映射远程服务器地址到本机")
cd $op_root
local rr=$(./hardware_manage -gv rr)
local lr=$(./hardware_manage -gv lr)
[ -z "$rr" -o -z "$lr" ] && {
show i $(lang "error config" "配置错误")
exit 0
}
local trr=$(df -h | grep ${lr:0:-1} | awk '{print $1}')
[ ! -z "$trr" ] && umount $lr
}
function action_upload_firmware()
{
show i $(lang "update firmware or all packages to remote server" "上传固件或所有包文件到远程服务器")
cd $op_root
local rr=$(./hardware_manage -gv rr)
local lr=$(./hardware_manage -gv lr)
[ -z "$rr" -o -z "$lr" ] && {
show i $(lang "error config" "配置错误")
exit 0
}
local trr=$(df -h | grep ${lr:0:-1} | awk '{print $1}')
#echo $trr
[ "$trr" != "$rr" -o ! -d "$lr" ] && {
#show i $(lang "need mount remote fs at local directory" "必须mount挂载远程目录")
#exit 0
action_mount_fs
}
#echo "111111111"
local bn=$(./hardware_manage -gv bn)
local bt=$(./hardware_manage -gv bt)
local pf=$(./hardware_manage -gv pf)
local pn=$(./hardware_manage -gv pn)
local cn=$(./hardware_manage -gv cn)
local tr=$(./hardware_manage -gv tr)
local tl=$(./hardware_manage -gv tl)
local bf=$(./hardware_manage -gv bf)
local pbc=$(./hardware_manage -gv pbc)
local pbt=$(./hardware_manage -gv pbt)
local pbn=$(./hardware_manage -gv pbn)
local pbv=$(./hardware_manage -gv pbv)
local pbd=$(./hardware_manage -gv pbd)
local uu=$(./hardware_manage -gv uu)
local ua=$(./hardware_manage -gv ua)
local link="$tr/$tl"
local cfgfile=""
local ofile=$tr/$pn/$(basename $(readlink $link))
local odir=$tr/$pn
local nowdate=$(date +%Y-%m-%dT%H:%M:%S)
local nowdt=$(date +%Y%m%dT%H%M%S)
local ofhash=$(md5sum -b $ofile | awk '{print $1}')
local ofsize=$(ls -l $ofile | awk '{print $5}')
local ofdtime=$(stat -c %y $ofile | awk -F. '{print $1}' | awk '{print $1"T"$2}')
local ofdt=$(date --date="$(stat -c %y $ofile)" +%Y%m%dT%H%M%S)
local nfsize=0
#echo $ofile
#echo $nowdate
#echo $ofhash
#echo $ofsize
#echo $ofdtime
local nd=$(realpath -s $lr/fw/$ofdt/)
local nfb=$nd/$(basename $ofile)
[ ! -d "$nd" -a -n "$nd" ] && mkdir -p "$nd"
[ -f "$ofile" ] && {
show i $(lang "copy firmware $ofile => $nfb" "拷贝固件 $ofile => $nfb")
[ -f "$nfb" ] && {
nfsize=$(ls -l $nfb | awk '{print $5}')
}
[ "$nfsize" -ne "$ofsize" ] && {
rsync -av --progress "$ofile" "$nfb"
rsync -av --progress $odir/*.bz2 $nd
}
show i $(lang "firmware size : $nfsize [remote] / $ofsize [local]" "固件大小 : $nfsize [远程] / $ofsize [本地]")
show i $(lang "firmware md5 : $ofhash" "固件 md5 : $ofhash")
cfgdir=$op_dir/custom-feeds/common-system-fix/$pn-firstuprun/files/etc
if [ -f "$cfgdir/set-upgrade" ]; then
#fc=$(cat $cfgdir/set-upgrade)
show i $(lang "copy set-upgrade" "拷贝 set-upgrade")
cp "$cfgdir/set-upgrade" "$nd/set-upgrade"
else
cfgdir=$op_dir/custom-feeds/common-system-fix/firstuprun/files/etc
if [ -f "$cfgdir/set-upgrade" ]; then
#fc=$(cat $cfgdir/set-upgrade)
show i $(lang "copy set-upgrade" "拷贝 set-upgrade")
cp "$cfgdir/set-upgrade" "$nd/set-upgrade"
fi
fi
cfgdir=$tr
if [ -f "$cfgdir/$pn.$pf.json" ]; then
show i $(lang "copy $pn.json" "拷贝 $pn.$pf.json")
cp "$cfgdir/$pn.$pf.json" "$nd/$pn.json"
elif [ -f "$cfgdir/$pn.json" ]; then
show i $(lang "copy $pn.json" "拷贝 $pn.$pf.json")
cp "$cfgdir/$pn.json" "$nd/$pn.json"
fi
}
fusermount -u $lr
}
doAction=false
op_root=$(get_wrtoy_path)
op_wrtoy_dir=$(get_wrtoy_path ..)
op_hp_dir=$(get_wrtoy_path profiles)
op_tl_dir=$(get_wrtoy_path ../tftproot)
op_dir=$(get_wrtoy_path ../openwrt)
doProxy=
proxy_port=7070
doVerbose=
doMakeJ=
#======================================================
help_feeds=$(lang \
"upgrade and install feeds" \
"升级并安装feeds(默认为安装全部feeds)")
addOption -f --feeds \
action=action_upgrade_feeds dest=feeds_name \
help="$help_feeds"
#======================================================
help_custom_feeds=$(lang \
"upgrade and install custom feeds (feeds: commonpack)" \
"升级并安装commonpack feeds仓库")
addOption -fc --feeds-commonpack \
flagTrue action=action_upgrade_custom_feeds dest=feeds_custom \
help="$help_custom_feeds"
#======================================================
help_use_proxy=$(lang \
"use sock5 proxy(proxychains support)" \
"使用sock5代理(proxychains支持)")
addOption -pc --proxychains \
flagTrue action=action_use_proxy dest=use_proxy \
help="$help_use_proxy"
#======================================================
help_install_new_openwrt=$(lang \
"install new Git source from Openwrt" \
"从Openwrt的Git中提取最新的源")
addOption -I --install-openwrt \
flagTrue action=action_install_new_openwrt dest=install_new_openwrt \
help="$help_install_new_openwrt"
#======================================================
help_reset_current_openwrt=$(lang \
"reset current Git source from Openwrt" \
"从Openwrt的Git中提取当前版本的源")
addOption -R --reset-openwrt \
flagTrue action=action_reset_current_openwrt dest=reset_current_openwrt \
help="$help_reset_current_openwrt"
#======================================================
help_install_release_openwrt=$(lang \
"install release version Git source from Openwrt" \
"从Openwrt的Git中提取项目release版本的源")
addOption -IR --install-release-openwrt \
flagTrue action=action_install_release_openwrt dest=install_release_openwrt \
help="$help_install_release_openwrt"
#======================================================
help_install_beta_openwrt=$(lang \
"install beta version Git source from Openwrt" \
"从Openwrt的Git中提取项目beta版本的源")
addOption -IB --install-beta-openwrt \
flagTrue action=action_install_beta_openwrt dest=install_beta_openwrt \
help="$help_install_beta_openwrt"
#======================================================
help_verbose=$(lang \
"show verbose" \
"显示更详细的信息")
addOption -v --verbose \
flagTrue action=action_verbose dest=verbose \
help="$help_verbose"
#======================================================
help_download=$(lang \
"download all package source code" \
"下载所有选中的package的源码")
help_downloadp=$(lang \
"download all package source code from sock5 proxy" \
"通过sock5代理下载所有选中的package的源码")
addOption -dl --download \
flagTrue dest=download_package \
help="$help_download"
addOption -dl+ --download-proxy \
flagTrue dest=download_proxy_package \
help="$help_download"
print $download_proxy_package
#======================================================
help_backup_config=$(lang \
"backup openwrt config" \
"备份openwrt配置")
addOption -bc --backup-config \
action=action_backup_config dest=backup_config \
help="$help_backup_config"
#======================================================
help_recover_config=$(lang \
"recover openwrt config" \
"恢复openwrt配置")
addOption -rc --recover-config \
action=action_recover_config dest=recover_config \
help="$help_recover_config"
#======================================================
help_show_diff_config=$(lang \
"show diff openwrt config" \
"显示openwrt配置差异")
addOption -dc --diff-config \
flagTrue dest=diff_config \
help="$help_show_diff_config"
#======================================================
help_show_diff_config_mode=$(lang \
"show diff openwrt config mode" \
"显示openwrt配置差异模式")
addOption -pm --patch-mode \
default="-" dest=pmode \
help="$help_show_diff_config_mode"
#======================================================
help_show_diff_config_p1=$(lang \
"show diff openwrt config file1" \
"openwrt配置文件1")
addOption -p1 --patch-file1 \
default="-" dest=p1 \
help="$help_show_diff_config_p1"
#======================================================
help_show_diff_config_p2=$(lang \
"show diff openwrt config file2" \
"openwrt配置文件2")
addOption -p2 --patch-file2 \
default="-" dest=p2 \
help="$help_show_diff_config_p2"
#======================================================
help_clear=$(lang \
"clear project" \
"清除项目数据")
help_cleart=$(lang \
"clear project tmp dir" \
"清除项目菜单缓存目录")
help_cleard=$(lang \
"clear project make dirclean" \
"清除项目中间编译缓存目录")
addOption -cl --clear \
flagTrue action=action_clear dest=clear\
help="$help_clear"
addOption -ct --clear-temp \
flagTrue action=action_clear dest=clear_temp \
help="$help_cleart"
addOption -cd --clear-dir \
flagTrue action=action_clear dest=clear_dir \
help="$help_cleard"
#======================================================
help_make_usb_image_disk=$(lang \
"make firmware image file to usbdisk(image mode)" \
"将指定u盘制作成启动盘(x86/rpi)")
addOption -iu --usb \
flagTrue action=action_make_usb_image_disk dest=usb_image\
help="$help_make_usb_image_disk"
#======================================================
help_show_publish_upgrade=$(lang \
"publish sysupgrade firmware info" \
"openwrt发布升级固件信息")
addOption -pu --publish-upgrade \
flagTrue dest=publish_upgrade \
help="$help_show_publish_upgrade"
#======================================================
help_copy_usb_image_disk=$(lang \
"copy firmware image file to usbdisk(copy mode)" \
"将镜像拷贝到指定u盘")
addOption -cu --usb-copy \
flagTrue action=action_copy_usb_image_disk dest=usb_copy\
help="$help_copy_usb_image_disk"
#======================================================
help_restart_tftp=$(lang \
"restart tftp server" \
"启动tftp服务")
addOption --tftp \
flagTrue action=action_restart_tftp dest=restart_tftp \
help="$help_restart_tftp"
#======================================================
help_build_image=$(lang \
"only build openwrt image" \
"仅生成openwrt镜像")
help_build_image_p=$(lang \
"only build openwrt image package install" \
"仅生成openwrt镜像-包集合")
help_build_image_l=$(lang \
"only build openwrt image linux install" \
"仅生成openwrt镜像-Linux")
help_build_image_i=$(lang \
"only build openwrt image package index" \
"仅生成openwrt镜像-包索引")
addOption -bi --build-image \
flagTrue dest=build_image \
help="$help_build_image"
addOption -bip --build-image-packages \
flagTrue dest=build_image_packages \
help="$help_build_image_p"
addOption -bil --build-image-linux \
flagTrue dest=build_image_linux \
help="$help_build_image_l"
addOption -bii --build-image-index \
flagTrue dest=build_image_index \
help="$help_build_image_i"
#======================================================
help_build=$(lang \
"build openwrt" \
"编译openwrt")
help_buildj=$(lang \
"build openwrt -j" \
"多线程编译openwrt")
addOption -b --build \
flagTrue dest=build_base \
help="$help_build"
addOption -bj --build-j \
dest=build_j\
help="$help_buildj"
#======================================================
help_copy=$(lang \
"copy firmware file to tftp root directory" \
"拷贝产生的固件文件到tftp的固件目录")
addOption -c --copy \
flagTrue dest=copy_tftp \
help="$help_copy"
#======================================================
help_package_name=$(lang \
"set package name" \
"设置package名称")
help_make_package=$(lang \
"make package" \
"编译package")
help_make_packagei=$(lang \
"install package" \
"安装package")
help_make_packaged=$(lang \
"download package source" \
"下载package源码")
help_make_packagec=$(lang \
"clean package" \
"清除package编译文件")
help_make_packager=$(lang \
"refresh package" \
"刷新package")
help_make_packageI=$(lang \
"Index package" \
"索引package")
addOption -pn --package-name \
dest=package_name \
help="$help_package_name"
addOption -mp --make-package \
flagTrue dest=make_package \
help="$help_make_package"
addOption -mpi --make-package-install \
flagTrue dest=make_package_install \
help="$help_make_packagei"
addOption -mpd --make-package-download \
flagTrue dest=make_package_download \
help="$help_make_packaged"
addOption -mpc --make-package-clean \
flagTrue dest=make_package_clean \
help="$help_make_packagec"
addOption -mpr --make-package-refresh \
flagTrue dest=make_package_refresh \
help="$help_make_packager"
addOption -mpI --make-package-index \
flagTrue dest=make_package_index \
help="$help_make_packageI"
#======================================================
help_make_j=$(lang \
"multi thread compiled" \
"执行多线程编译")
addOption -j \
action=action_make_j dest=make_j \
help="$help_make_menu_j"
#======================================================
help_make_menu=$(lang \
"make menuconfig" \
"执行menuconfig(openwrt功能定制)")
addOption -m --menu-config \
flagTrue action=action_make_menu dest=menu_config\
help="$help_make_menu"
#======================================================
help_make_kernel_menuconfig=$(lang \
"make kernel menuconfig" \
"执行kernel menuconfig(linux内核定制)")
addOption -km --kernel-menu-config \
flagTrue action=action_make_kernel_menu dest=kernel_menu_config\
help="$help_make_kernel_menuconfig"
#======================================================
help_make_defconfig=$(lang \
"make defconfig" \
"执行Openwrt配置依赖关系梳理(清除无效配置,检测并设置依赖关系)")
addOption -def --default-config \
flagTrue action=action_make_defconfig dest=make_defconfig\
help="$help_make_defconfig"
#======================================================
help_patch_openwrt=$(lang \
"patch project(app)" \
"给当前openwrt打上项目应用补丁")
addOption -po --patch-openwrt \
default=mtall action=action_patch_openwrt dest=proj_name \
help="$help_patch_openwrt"
#======================================================
help_patch_platform=$(lang \
"patch project(platform)" \
"给当前openwrt打上项目平台补丁")
addOption -pp --patch-platform \
flagTrue action=action_patch_platform dest=patch_platform\
help="$help_patch_platform"
#======================================================
help_patch_host=$(lang \
"patch project(host)" \
"给当前openwrt打上项目交叉编译平台补丁")
addOption -ph --patch-host \
flagTrue action=action_patch_host dest=patch_host\
help="$help_patch_host"
#======================================================
help_mount_fs=$(lang \
"mount remote fs to local" \
"mount远程目录到本地")
addOption -mf --mount-fs \
flagTrue action=action_mount_fs dest=mount_fs\
help="$help_mount_fs"
#======================================================
help_upload_fw=$(lang \
"upload new firmware to remote fs" \
"上传新固件到远程目录")
addOption -uf --upload-firmware \
flagTrue action=action_upload_firmware dest=upload_fw\
help="$help_upload_fw"
#addOption -P --platform \
# action=action_reset_last_openwrt \
# help="set platform"
parseOptions "$@"
#action_run $profile $debug
function action_run()
{
[ $diff_config == true ] && action_show_diff_config
[ $download_package == true -o $download_proxy_package == true ] && action_download_package
[ $make_package == true -o \
$make_package_install == true -o \
$make_package_download == true -o \
$make_package_clean == true -o \
$make_package_refresh == true -o \
$make_package_index == true ] && action_make_package
[ $build_base == true ] && action_build
[ $build_image == true ] && action_build_image
[ $build_image_packages == true ] && action_build_image_packages
[ $build_image_linux == true ] && action_build_image_linux
[ $build_image_index == true ] && action_build_image_index
[ $build_j ] && action_build
[ $copy_tftp == true ] && action_copy_tftp
[ $publish_upgrade == true ] && action_publish_upgrade
}
action_run
Python
1
https://gitee.com/darcyg/wrtoy.git
git@gitee.com:darcyg/wrtoy.git
darcyg
wrtoy
wrtoy
master

搜索帮助