From 2deb3ff10f2d38515c06a253589445985e76f4bb Mon Sep 17 00:00:00 2001 From: Oleg S Date: Thu, 11 Aug 2022 12:32:00 +0300 Subject: [PATCH] Initial commit --- _addons.config | 30 ++++++++ _argon.config | 2 + _base.config | 185 +++++++++++++++++++++++++++++++++++++++++++++++ _printer.config | 5 ++ _proxy.config | 9 +++ _samba.config | 4 + _torrents.config | 10 +++ _wifi_en.config | 6 ++ r3d.config | 61 ++++++++++++++++ xcommon.sh | 110 ++++++++++++++++++++++++++++ xcreate.sh | 35 +++++++++ xmake.sh | 53 ++++++++++++++ xupdate.sh | 78 ++++++++++++++++++++ 13 files changed, 588 insertions(+) create mode 100644 _addons.config create mode 100644 _argon.config create mode 100644 _base.config create mode 100644 _printer.config create mode 100644 _proxy.config create mode 100644 _samba.config create mode 100644 _torrents.config create mode 100644 _wifi_en.config create mode 100644 r3d.config create mode 100644 xcommon.sh create mode 100644 xcreate.sh create mode 100644 xmake.sh create mode 100644 xupdate.sh diff --git a/_addons.config b/_addons.config new file mode 100644 index 0000000..7601169 --- /dev/null +++ b/_addons.config @@ -0,0 +1,30 @@ + +### alpine-fan-control +#GIT_FEED _alpine_fan_control=https://github.com/openwrt-xiaomi/openwrt-alpine-fan-control.git +CONFIG_FEED__alpine_fan_control=m + +### qBittorrent +##GIT_FEED _qBittorrent=https://github.com/openwrt-xiaomi/qBittorrent-openwrt-package.git^887ebfb9f255f78926cc6c643580f897803619f3 +#CONFIG_FEED__qBittorrent=m + +### luci-app-temp-status +#GIT_PACKAGE luci-app-temp-status=https://github.com/openwrt-xiaomi/luci-app-temp-status.git master + +### luci-app-disks-info +#GIT_PACKAGE luci-app-disks-info=https://github.com/openwrt-xiaomi/luci-app-disks-info.git master + +### luci-app-diskman +#GIT_PACKAGE luci-app-diskman=https://github.com/openwrt-xiaomi/luci-app-diskman.git master + +### luci-theme-argon +#GIT_PACKAGE luci-theme-argon=https://github.com/openwrt-xiaomi/luci-theme-argon.git master + +### luci-app-tn-netports +#GIT_PACKAGE luci-app-tn-netports=https://github.com/openwrt-xiaomi/luci-app-tn-netports.git master + +### luci-app-timecontrol +#GIT_PACKAGE luci-app-timecontrol=https://github.com/openwrt-xiaomi/luci-app-timecontrol.git main + +### qBittorrent +##GIT_PACKAGE qBittorrent=https://github.com/openwrt-xiaomi/qBittorrent-openwrt-package.git for-openwrt-21.02 + diff --git a/_argon.config b/_argon.config new file mode 100644 index 0000000..baa5412 --- /dev/null +++ b/_argon.config @@ -0,0 +1,2 @@ +### Argon Theme +CONFIG_PACKAGE_luci-theme-argon=y diff --git a/_base.config b/_base.config new file mode 100644 index 0000000..097e97d --- /dev/null +++ b/_base.config @@ -0,0 +1,185 @@ +CONFIG_FEED_luci=y +CONFIG_FEED_packages=y +CONFIG_FEED_routing=y +CONFIG_FEED_telephony=y + +### For compatible official firmwares +CONFIG_ALL_KMODS=y +CONFIG_ALL_NONSHARED=y +CONFIG_DEVEL=y +CONFIG_KERNEL_KALLSYMS=n +CONFIG_COLLECT_KERNEL_DEBUG=y + +### Per-package build logs in /logs +CONFIG_BUILD_LOG=y + +### Include package list in build +CONFIG_INCLUDE_CONFIG=y + +### Busybox +CONFIG_PACKAGE_busybox=y +CONFIG_BUSYBOX_CUSTOM=y +##CONFIG_BUSYBOX_CONFIG_DIFF=y +CONFIG_BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY=y +CONFIG_BUSYBOX_CONFIG_FEATURE_EDITING_SAVE_ON_EXIT=y +CONFIG_BUSYBOX_CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_BUSYBOX_CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_BUSYBOX_CONFIG_FEATURE_LESS_WINCH=y + +### System utils +CONFIG_PACKAGE_dropbear=y +CONFIG_PACKAGE_uboot-envtools=y +CONFIG_PACKAGE_mtd-utils=y +CONFIG_PACKAGE_iw=y +CONFIG_PACKAGE_mc=y +CONFIG_PACKAGE_luci-app-ttyd=y +CONFIG_PACKAGE_luci-i18n-ttyd-ru=y + +### Add-on programs +CONFIG_PACKAGE_iperf3=y +CONFIG_PACKAGE_htop=y +CONFIG_PACKAGE_nano=y +CONFIG_PACKAGE_ccrypt=y +CONFIG_PACKAGE_curl=y +CONFIG_PACKAGE_wget=y +CONFIG_PACKAGE_patch=y +CONFIG_PACKAGE_diffutils=y +CONFIG_PACKAGE_tree=y +CONFIG_PACKAGE_irqbalance=y +CONFIG_DROPBEAR_ECC=y +CONFIG_PACKAGE_terminfo=y +CONFIG_PACKAGE_zlib=y +CONFIG_PACKAGE_ethtool=y +CONFIG_PACKAGE_openssl-util=y + +### USB device mount & file systems support +CONFIG_PACKAGE_gdisk=y +CONFIG_PACKAGE_parted=y +CONFIG_PACKAGE_e2fsprogs=y +CONFIG_PACKAGE_usbutils=y +CONFIG_PACKAGE_block-mount=y +CONFIG_PACKAGE_libblkid=y +CONFIG_PACKAGE_blkid=y +CONFIG_PACKAGE_lsblk=y +CONFIG_PACKAGE_lsblk=y +CONFIG_PACKAGE_kmod-usb-storage=y +CONFIG_PACKAGE_kmod-fs-cifs=y +CONFIG_PACKAGE_kmod-fs-exfat=y +CONFIG_PACKAGE_kmod-fs-ext4=y +CONFIG_PACKAGE_kmod-fs-hfsplus=y +CONFIG_PACKAGE_kmod-fs-msdos=y +CONFIG_PACKAGE_kmod-fs-vfat=y +CONFIG_PACKAGE_kmod-fs-f2fs=y +CONFIG_PACKAGE_kmod-fs-ntfs=y +CONFIG_PACKAGE_kmod-fs-squashfs=y +CONFIG_PACKAGE_kmod-nls-cp1250=y +CONFIG_PACKAGE_kmod-nls-cp437=y +CONFIG_PACKAGE_kmod-nls-cp850=y +CONFIG_PACKAGE_kmod-nls-iso8859-1=y +CONFIG_PACKAGE_kmod-nls-iso8859-15=y +CONFIG_PACKAGE_kmod-nls-utf8=y + +### WAN proto +CONFIG_PACKAGE_kmod-l2tp=y +CONFIG_PACKAGE_kmod-pppol2tp=y +CONFIG_PACKAGE_kmod-pptp=y + +### PPTP support +CONFIG_PACKAGE_luci-proto-ppp=y +CONFIG_PACKAGE_ppp-mod-pptp=y + +### kernel support for tunnels, VPNs +CONFIG_PACKAGE_kmod-tun=y +CONFIG_PACKAGE_kmod-br-netfilter=y +CONFIG_PACKAGE_gre=y + +### Relay +CONFIG_PACKAGE_relayd=y +CONFIG_PACKAGE_luci-proto-relay=y + +### IPv6 support +CONFIG_PACKAGE_6in4=y +CONFIG_PACKAGE_6to4=y +CONFIG_PACKAGE_6rd=y + +### IPv6 NAT support (ip6tables NAT extensions, ipt-nat6 and nf-nat6 kmods) +##CONFIG_PACKAGE_ip6tables-mod-nat=y + +### SSL certificates +CONFIG_PACKAGE_ca-certificates=y + +### Luci +CONFIG_LUCI_LANG_en=y +CONFIG_LUCI_LANG_ru=y +CONFIG_PACKAGE_luci=y +CONFIG_PACKAGE_luci-compat=y +CONFIG_PACKAGE_luci-base=y +CONFIG_PACKAGE_luci-i18n-base-ru=y +CONFIG_PACKAGE_luci-mod-admin-full=y +CONFIG_PACKAGE_luci-mod-network=y +CONFIG_PACKAGE_luci-mod-status=y +CONFIG_PACKAGE_luci-mod-system=y +CONFIG_PACKAGE_luci-app-commands=y +CONFIG_PACKAGE_luci-i18n-commands-ru=y +CONFIG_PACKAGE_luci-app-ddns=y +CONFIG_PACKAGE_luci-i18n-ddns-ru=y +CONFIG_PACKAGE_luci-app-firewall=y +CONFIG_PACKAGE_luci-i18n-firewall-ru=y +CONFIG_PACKAGE_luci-app-opkg=y +CONFIG_PACKAGE_luci-i18n-opkg-ru=y +CONFIG_PACKAGE_luci-app-uhttpd=y +CONFIG_PACKAGE_luci-i18n-uhttpd-ru=y +CONFIG_PACKAGE_luci-app-upnp=y +CONFIG_PACKAGE_luci-i18n-upnp-ru=y + +### Luci themes +CONFIG_PACKAGE_luci-theme-bootstrap=y +CONFIG_PACKAGE_luci-theme-material=y +CONFIG_PACKAGE_luci-theme-openwrt=y +CONFIG_PACKAGE_luci-theme-openwrt-2020=y + +### LuCI with HTTPS support (WolfSSL as SSL backend) +CONFIG_PACKAGE_luci-ssl=y + +### Luci statistics +CONFIG_PACKAGE_luci-app-statistics=y +CONFIG_PACKAGE_luci-i18n-statistics-ru=y +CONFIG_PACKAGE_collectd-mod-conntrack=y +CONFIG_PACKAGE_collectd-mod-cpufreq=y +CONFIG_PACKAGE_collectd-mod-entropy=y +CONFIG_PACKAGE_collectd-mod-ping=y +CONFIG_PACKAGE_collectd-mod-thermal=y +CONFIG_PACKAGE_collectd-mod-uptime=y + +### WLAN/WPS support +CONFIG_PACKAGE_wpad-wolfssl=y +CONFIG_WPA_SUPPLICANT_INTERNAL=y +CONFIG_WPA_RFKILL_SUPPORT=y +## CONFIG_WPA_MSG_MIN_PRIORITY=2 +## CONFIG_WPA_MSG_MIN_PRIORITY=4 + +### Wake On Lan +##CONFIG_PACKAGE_luci-app-wol=y +##CONFIG_PACKAGE_luci-i18n-wol-ru=y + +### WatchCat - Restart network interfaces or reboot if pings to hosts fail, or set up periodic reboots +CONFIG_PACKAGE_luci-app-watchcat=y +CONFIG_PACKAGE_luci-i18n-watchcat-ru=y + +### IP Tables tool +CONFIG_PACKAGE_kmod-ipt-ipopt=y +CONFIG_PACKAGE_iptables-mod-ipopt=y + +### Adblock package with Luci support +CONFIG_PACKAGE_adblock=y +CONFIG_PACKAGE_luci-app-adblock=y +CONFIG_PACKAGE_luci-i18n-adblock-ru=y + +### BanIP package with Luci support +CONFIG_PACKAGE_banip=y +CONFIG_PACKAGE_luci-app-banip=y +CONFIG_PACKAGE_luci-i18n-banip-ru=y + +### nlbwmon app (OpenWrt Traffic Usage Monitor) +CONFIG_PACKAGE_luci-app-nlbwmon=y +CONFIG_PACKAGE_luci-i18n-nlbwmon-ru=y diff --git a/_printer.config b/_printer.config new file mode 100644 index 0000000..82e2e08 --- /dev/null +++ b/_printer.config @@ -0,0 +1,5 @@ +### USB Printer support +CONFIG_PACKAGE_kmod-usb-printer=y +CONFIG_PACKAGE_p910nd=y +CONFIG_PACKAGE_luci-app-p910nd=y +CONFIG_PACKAGE_luci-i18n-app-p910nd-ru=y diff --git a/_proxy.config b/_proxy.config new file mode 100644 index 0000000..047bd8d --- /dev/null +++ b/_proxy.config @@ -0,0 +1,9 @@ +### DNS and Proxy +CONFIG_PACKAGE_luci-app-nextdns=y +CONFIG_PACKAGE_luci-i18n-nextdns-ru=y + +CONFIG_PACKAGE_luci-app-dnscrypt-proxy=y +CONFIG_PACKAGE_luci-i18n-dnscrypt-proxy-ru=y + +CONFIG_PACKAGE_dnscrypt-proxy2=y + diff --git a/_samba.config b/_samba.config new file mode 100644 index 0000000..7b76482 --- /dev/null +++ b/_samba.config @@ -0,0 +1,4 @@ +### Samba +CONFIG_PACKAGE_luci-app-samba4=y +CONFIG_PACKAGE_luci-i18n-samba4-ru=y +CONFIG_PACKAGE_samba4-utils=y diff --git a/_torrents.config b/_torrents.config new file mode 100644 index 0000000..bc085fc --- /dev/null +++ b/_torrents.config @@ -0,0 +1,10 @@ +### Torrent clients +CONFIG_PACKAGE_transmission-web=y +#CONFIG_PACKAGE_transmission-web-control=y +CONFIG_PACKAGE_luci-app-transmission=y +CONFIG_PACKAGE_luci-i18n-transmission-ru=y + +CONFIG_PACKAGE_luci-app-minidlna=y +CONFIG_PACKAGE_luci-i18n-minidlna-ru=y + + diff --git a/_wifi_en.config b/_wifi_en.config new file mode 100644 index 0000000..0a980df --- /dev/null +++ b/_wifi_en.config @@ -0,0 +1,6 @@ +### WiFi default config +CONFIG_PACKAGE_MAC80211_ENABLE=y +CONFIG_PACKAGE_MAC80211_COUNTRY="US" +#CONFIG_PACKAGE_MAC80211_SSID="" +CONFIG_PACKAGE_MAC80211_ENCRYPTION="psk2" +CONFIG_PACKAGE_MAC80211_PASSWORD="12345678" diff --git a/r3d.config b/r3d.config new file mode 100644 index 0000000..5848580 --- /dev/null +++ b/r3d.config @@ -0,0 +1,61 @@ +CONFIG_TARGET_ipq806x=y +CONFIG_TARGET_ipq806x_generic=y +CONFIG_TARGET_ipq806x_generic_DEVICE_xiaomi_r3d=y + +#CONFIG_TARGET_MULTI_PROFILE=y +#CONFIG_TARGET_DEVICE_PACKAGES_ipq806x_generic_DEVICE_xiaomi_r3d="-dnsmasq" +#CONFIG_TARGET_PER_DEVICE_ROOTFS=y + +#include _addons.config +#include _base.config +#include _wifi_en.config +#include _printer.config +#include _samba.config +#include _torrents.config +#include _proxy.config +#include _argon.config + +### Temp and sensors +CONFIG_PACKAGE_lm-sensors=y +CONFIG_PACKAGE_lm-sensors-detect=y +CONFIG_PACKAGE_alpine-fan-control=y +CONFIG_PACKAGE_luci-app-alpine-fan-control=y +CONFIG_PACKAGE_luci-app-temp-status=y +CONFIG_PACKAGE_luci-i18n-temp-status-ru=y + +### HDD tools +CONFIG_PACKAGE_smartmontools=y +CONFIG_PACKAGE_hdparm=y +CONFIG_PACKAGE_hd-idle=y +CONFIG_PACKAGE_luci-app-hd-idle=y +#CONFIG_PACKAGE_luci-i18n-hd-idle-ru=y +CONFIG_PACKAGE_luci-app-disks-info=y +#CONFIG_PACKAGE_luci-i18n-disks-info-ru=y +CONFIG_PACKAGE_luci-app-diskman=y + +### Network Ports viewer +CONFIG_PACKAGE_luci-app-tn-netports=y +CONFIG_PACKAGE_luci-i18n-tn-netports-ru=y + +### Network traffic +CONFIG_PACKAGE_luci-app-sqm=y +CONFIG_PACKAGE_luci-i18n-sqm-ru=y + +### TimeControl +CONFIG_PACKAGE_luci-app-timecontrol=y + +### qBittorrent +#CONFIG_PACKAGE_boost=y +#CONFIG_PACKAGE_boost-system=y +#CONFIG_PACKAGE_rblibtorrent=y +#CONFIG_PACKAGE_qBittorrent=y + +### FileBrowser +CONFIG_PACKAGE_luci-app-filebrowser=y + +### DNSMasq +CONFIG_PACKAGE_dnsmasq-full=y + +### CPU Freq +CONFIG_PACKAGE_luci-app-cpufreq=y + diff --git a/xcommon.sh b/xcommon.sh new file mode 100644 index 0000000..8f8fb56 --- /dev/null +++ b/xcommon.sh @@ -0,0 +1,110 @@ +#!/bin/bash + +XSUPPORTEDVER=21 +XREPOADDR=https://github.com/openwrt-xiaomi +XDEFBRANCH=xq-21.02.1 + +logmsg() { + echo "$@" +} + +logerr() { + echo "ERROR: $@" >&2 +} + +die() { + logerr $@ + exit 1 +} + +#[ ! -d "$XDIR" ] && die "Base directory not defined" + +get_cfg_inc_lst() { + local cfg=$1 + local k=$( grep -o -P '(?<=^#include ).*' "$cfg" 2> /dev/null ) + echo "$k" +} + +get_cfg_feed_lst() { + local cfg=$1 + local k=$( grep -o -P '(?<=^CONFIG_FEED_).*(?==[y|m])' "$cfg" 2> /dev/null ) + echo "$k" +} + +get_cfg_feed_url() { + local cfg=$1 + local name=$2 + local k=$( grep -o -P "(?<=^#GIT_FEED $name=).*" "$cfg" 2> /dev/null ) + echo "$k" +} + +get_cfg_expkg_lst() { + local cfg=$1 + local k=$( grep -o -P '(?<=^#GIT_PACKAGE ).*(?==)' "$cfg" 2> /dev/null ) + echo "$k" +} + +get_cfg_expkg_url() { + local cfg=$1 + local name=$2 + local k=$( grep -o -P "(?<=^#GIT_PACKAGE $name=).*" "$cfg" 2> /dev/null ) + echo "$k" +} + +get_cfg_board() { + local cfg=$1 + local k=$( grep -o -P "(?<=^CONFIG_TARGET_)[a-z0-9]+(?==y)" "$cfg" 2> /dev/null ) + [ $( echo "$k" | wc -l ) != 1 ] && { echo ""; return 0; } + echo "$k" +} + +get_cfg_subtarget() { + local cfg=$1 + local board=$2 + local k=$( grep -o -P "(?<=^CONFIG_TARGET_"$board"_)[a-z0-9]+(?==y)" "$cfg" 2> /dev/null ) + [ $( echo "$k" | wc -l ) != 1 ] && { echo ""; return 0; } + echo "$k" +} + +get_cfg_dev_lst() { + local cfg=$1 + local board=$2 + local subtarget=$3 + local k=$( grep -o -P "(?<=^CONFIG_TARGET_"$board"_"$subtarget"_DEVICE_).*(?==y)" "$cfg" 2> /dev/null ) + [ $( echo "$k" | wc -l ) != 1 ] && { echo ""; return 0; } + echo "$k" +} + +get_cfg_pkg_flag() { + local cfg=$1 + local name=$2 + local k=$( grep -o -P "(?<=^CONFIG_PACKAGE_$name=).*" "$cfg" 2> /dev/null ) + echo "$k" +} + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xcreate.sh b/xcreate.sh new file mode 100644 index 0000000..45e6cc1 --- /dev/null +++ b/xcreate.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +export XDIR=$SCRIPT_DIR + +. ./xcommon.sh + +[ -z "$*" ] && die "No options found!" + +while getopts "v:" opt; do + case $opt in + v ) TARGET_BRANCH=$OPTARG;; + esac +done + +[ -z "$TARGET_BRANCH" ] && TARGET_BRANCH=$XDEFBRANCH + +[ -d "$XDIR/$TARGET_BRANCH" ] && die "Directory '$TARGET_BRANCH' already exist!" + +XREPOWRT=$XREPOADDR/openwrt.git +git clone $XREPOWRT -b $TARGET_BRANCH $TARGET_BRANCH +if [ "$?" != "0" ]; then + rm -rf ./$TARGET_BRANCH + die "Repository '$XREPOWRT' not found!" +fi + +XTOPDIR=$XDIR/$TARGET_BRANCH + +find . -maxdepth 1 -type f -name "*.sh" -exec chmod 775 -- {} + >/dev/null +find . -maxdepth 1 -type f -name "*.sh" -exec cp {} $XTOPDIR \; >/dev/null +find . -maxdepth 1 -type f -name "*.config" -exec cp {} $XTOPDIR \; >/dev/null + +echo "Repository '$TARGET_BRANCH' created!" +#cd $XTOPDIR + diff --git a/xmake.sh b/xmake.sh new file mode 100644 index 0000000..6bb0165 --- /dev/null +++ b/xmake.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +export XDIR=$SCRIPT_DIR + +. ./xcommon.sh + +XTARGET= +OPT_FULL_REBUILD=false +while getopts "t:f" opt; do + case $opt in + t) XTARGET=$OPTARG;; + f) OPT_FULL_REBUILD=true;; + esac +done + +[ -z "$XTARGET" ] && die "Target config not specified!" +CFG=$XDIR/$XTARGET.config +[ ! -f "$CFG" ] && die "File '$XTARGET.config' not found!" + +if [ "$OPT_FULL_REBUILD" = "true" ]; then + make clean + rm -rf tmp + #rm -rf feeds/luci.tmp + #rm -rf feeds/packages.tmp + #rm -rf staging_dir/packages +fi + +rm -f .config +cp -f "$CFG" .config +inclst=$( get_cfg_inc_lst $CFG ) +for inc in $inclst; do + echo -e "\n\n" >> .config + [ ! -f "$XDIR/$inc" ] && die "File '$inc' not found!" + cat $XDIR/$inc >> .config +done +#cp -f .config current.config + +make defconfig + +if [ $( get_cfg_pkg_flag "$XDIR/.config" "dnsmasq-full" ) = "y" ]; then + echo "Forced using dnsmasq-full !!!" + sed -i '/CONFIG_DEFAULT_dnsmasq=y/d' $XDIR/.config + sed -i '/CONFIG_PACKAGE_dnsmasq=y/d' $XDIR/.config +fi + +MAKE_JOBS=$( grep processor /proc/cpuinfo | tail -n 1 | awk '{print $3}' ) + +#make tools/install -j$MAKE_JOBS +#make toolchain/install -j$MAKE_JOBS + +make PARALLEL_BUILD=1 -j $MAKE_JOBS download world + diff --git a/xupdate.sh b/xupdate.sh new file mode 100644 index 0000000..c43ddeb --- /dev/null +++ b/xupdate.sh @@ -0,0 +1,78 @@ +#!/bin/bash + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +export XDIR=$SCRIPT_DIR +export XADDONSDIR=$XDIR/package/addons +FEEDSDIR=$XDIR/package/feeds +ADDONSCFG=$XDIR/_addons.config + +. ./xcommon.sh + +OPT_FULL_UPDATE=false +while getopts "f" opt; do + case $opt in + f) OPT_FULL_UPDATE=true;; + esac +done + +[ ! -d "$FEEDSDIR/package" ] && OPT_FULL_UPDATE=true + +rm -rf tmp +if [ "$OPT_FULL_UPDATE" = "true" ]; then + rm -rf feeds/luci.tmp + rm -rf feeds/packages.tmp + #rm -rf feeds + #rm -rf package/feeds + rm -rf staging_dir/packages + rm -rf $XADDONSDIR +fi + +git reset --hard HEAD + +git fetch +[ "$?" != "0" ] && die "Can't fetch current repository" + +git pull --force "origin" +[ "$?" != "0" ] && die "Can't pull current repository" + +rm -f feeds.conf +cp -f feeds.conf.default feeds.conf +feed_lst=$( get_cfg_feed_lst "$ADDONSCFG" ) +for feed in $feed_lst; do + value=$( get_cfg_feed_url "$ADDONSCFG" $feed ) + #echo "$feed = '$value'" + echo "src-git $feed $value" >> feeds.conf +done + +if [ "$OPT_FULL_UPDATE" = "true" ]; then + ./scripts/feeds update -a + ./scripts/feeds install -a +fi + +CLONE_ADDONS=true +if [ "$CLONE_ADDONS" = "true" ]; then + mkdir $XADDONSDIR + pkg_lst=$( get_cfg_expkg_lst "$ADDONSCFG" ) + for pkg in $pkg_lst; do + value=$( get_cfg_expkg_url "$ADDONSCFG" $pkg ) + #echo "$pkg = '$value'" + url=$( echo "$value" | cut -d " " -f 1 ) + branch=$( echo "$value" | cut -d " " -f 2 ) + #echo "'$url' / '$branch'" + if [ ! -d "$XADDONSDIR/$pkg" ]; then + git clone $url -b $branch $XADDONSDIR/$pkg + [ "$?" != "0" ] && die "Can't clone repository '$url'" + fi + done + if [ "$OPT_FULL_UPDATE" = "true" ]; then + ./scripts/feeds install -a + fi +fi + +if [ "$OPT_FULL_UPDATE" = "true" ]; then + ./vermagic_update.sh ipq806x generic + ./vermagic_update.sh ramips mt7621 + ./vermagic_update.sh mediatek mt7622 +fi + +echo "All git sources updated!"