diff options
Diffstat (limited to 'support/scripts/mk_config_from_xml.sh')
-rwxr-xr-x | support/scripts/mk_config_from_xml.sh | 206 |
1 files changed, 206 insertions, 0 deletions
diff --git a/support/scripts/mk_config_from_xml.sh b/support/scripts/mk_config_from_xml.sh new file mode 100755 index 0000000..03a24cd --- /dev/null +++ b/support/scripts/mk_config_from_xml.sh @@ -0,0 +1,206 @@ +#!/bin/bash + +print_usage() +{ + echo "Usage : mk_config_from_xml.sh <type>" + echo " type : base or unified" +} + +if [ $# != 1 ] +then + print_usage + exit 1 +fi + +if [ $1 != "base" -a $1 != "unified" ] +then + echo "type is invalid." + print_usage + exit 1 +fi + +if [ -e $INFO_DIR/.info_list.txt ] +then +source $INFO_DIR/.info_list.txt +fi + +if [ $TBB_INFO_PLATFORM_VERSION = "5.0" ] +then +P_VER="" +else +P_VER=${TBB_INFO_PLATFORM_VERSION}- +fi +S_VER=$TBB_INFO_SNAPSHOT_ID + +if [ -e $TOPDIR/advanced/${TBB_INFO_SNAPSHOT_ID}_$1_${TBB_INFO_PLATFORM_VERSION} ] +then + echo "Already built..." + exit 0 +fi + +OUT_TYPE=$1 +DOWNDIR=$BUILD_DIR +DATA_XML=$DOWNDIR/temp.xml +DATA2_XML=$DOWNDIR/armv7l_noarch.xml +OUTFILE=$DOWNDIR/Config.in + +if [ $OUT_TYPE = "base" ] +then + if [ ${TBB_INFO_PLATFORM_VERSION} = "4.0" ] + then + DOWN_URL="http://download.tizen.org/snapshots/tizen/${P_VER}base/latest/repos/arm/packages/repodata/" + else + DOWN_URL="http://download.tizen.org/snapshots/tizen/${P_VER}base/latest/repos/standard/packages/repodata/" + fi + XMLNAME="base.xml" + RESULTFILE=$DOWNDIR/Config_$OUT_TYPE.in +else + http://download.tizen.org/snapshots/tizen/${P_VER}unified/tizen-${P_VER}unified_${S_VER}/repos/standard/packages/repodata/ + DOWN_URL="http://download.tizen.org/snapshots/tizen/${P_VER}unified/tizen-${P_VER}unified_${S_VER}/repos/standard/packages/repodata/" + XMLNAME="unified.xml" + RESULTFILE=$DOWNDIR/Config_$OUT_TYPE.in +fi + +download_repo_data() +{ + wget -r -np -nd -P $DOWNDIR $DOWN_URL -A "*-primary.xml.gz" + if [ $? != 0 ] + then + return 1 + fi + mv $DOWNDIR/*-primary.xml.gz $DOWNDIR/${XMLNAME}.gz + gzip -d $DOWNDIR/${XMLNAME}.gz +} + +download_repo_data +if [ $? != 0 ] +then + echo "Downloading the repo data is failed..." + exit 1 +fi + +sed -e 's/<metadata.\+/<metadata>/g' $DOWNDIR/$XMLNAME > $DATA_XML +rm -f $DOWNDIR/$XMLNAME + +echo "<metadata>" > $DATA2_XML +xmllint --xpath '//package[arch="armv7l" or arch="noarch"]' $DATA_XML 2>/dev/null | sed -e 's/package>/package>\n/g' | sed -e '/^$/d' >> $DATA2_XML +echo "</metadata>" >> $DATA2_XML + +sed -i '/<version /d' $DATA2_XML +sed -i '/<checksum /d' $DATA2_XML +sed -i '/<packager/d' $DATA2_XML +sed -i '/<url/d' $DATA2_XML +sed -i '/<time /d' $DATA2_XML +sed -i '/<size /d' $DATA2_XML +sed -i '/<location /d' $DATA2_XML +sed -i '/<format/d' $DATA2_XML +sed -i '/<rpm:/d' $DATA2_XML +sed -i '/<\/rpm:/d' $DATA2_XML +sed -i '/<file/d' $DATA2_XML +sed -i '/<\/format/d' $DATA2_XML +#exec < $1 + +STATE="search_package_state" + +if [ $OUT_TYPE = "base" ] +then +echo "menu \"Base packages\"" > $OUTFILE +else +echo "menu \"Unified packages\"" > $OUTFILE +fi +exec < $DATA2_XML +while read line +do +if [ $STATE = "skip_package_state" ] +then + if [[ $line = *"</package>"* ]] + then + STATE="search_package_state" + fi + continue +fi + +if [ $STATE = "search_package_state" ] +then + if [[ $line = *"<package "* ]] + then + STATE="package_state" + fi + continue +fi + +if [ $STATE = "package_state" ] +then + if [[ $line = *"<name>"* ]] + then + NAME=`echo $line | sed -e 's|<name>\(.\+\)</name>|\1|'` + if [ $NAME = "libstdc++-devel" ] + then + NAME="libstdcpp-devel" + fi + if [[ $NAME = *"building-blocks-"* ]] + then + STATE="skip_package_state" + continue + fi + echo "config $NAME" >> $OUTFILE + echo "bool \"$NAME\"" >> $OUTFILE + STATE="package_name_state" + fi + continue +fi + +if [ $STATE = "package_name_state" ] +then +# echo $line | grep -q "<description>.\+</description>" +# if [ $? = "0" ] + if [[ $line = *"<description>"*"</description>"* ]] + then + DESCRIPTION=`echo $line | sed -e 's|<description>[ ]*\(.\+\)</description>|\1|'` + echo "help" >> $OUTFILE + echo " $DESCRIPTION" >> $OUTFILE + echo "" >> $OUTFILE + STATE="search_package_state" + continue + else + if [[ $line = *"<description>"* ]] + then + DESCRIPTION=`echo $line | sed -e 's|<description>[ ]*\(.\+\)$|\1|'` + echo "help" >> $OUTFILE + echo " $DESCRIPTION" >> $OUTFILE + STATE="cont_description_state" + continue + else + continue + fi + fi +fi + +if [ $STATE = "cont_description_state" ] +then + if [[ $line = *"</description>" ]] + then + DESCRIPTION=`echo $line | sed -e 's|[ ]*\(.\+\)</description>|\1|'` + echo " $DESCRIPTION" >> $OUTFILE + echo "" >> $OUTFILE + STATE="search_package_state" + else + echo " $line" >> $OUTFILE + fi + +fi + +done +echo "endmenu" >> $OUTFILE + +mv $OUTFILE $RESULTFILE +mv -f $RESULTFILE $TOPDIR/advanced +rm -f $DATA_XML $DATA2_XML $RESULTFILE +ID_FILE=`ls $TOPDIR/advanced/| grep "[0-9]\{8\}.[0-9]_${OUT_TYPE}_*"` +for del_file in $ID_FILE +do + rm -f $TOPDIR/advanced/$del_file +done +touch $TOPDIR/advanced/${TBB_INFO_SNAPSHOT_ID}_${OUT_TYPE}_${TBB_INFO_PLATFORM_VERSION} +echo "Making Advaned Config is complete" + |