#!/bin/sh #---------------------------------------------------------------------------------- # create-testteam-eislist for testteam-portal # # Creation : 2005-12-18 tg # Last Update: $Id$ # # Copyright (c) 2001-2007 the eisfair team, c/o Frank Meyer, # # usage : create-testteam-eislist # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. #---------------------------------------------------------------------------------- #exec 2> t_team-eislist-trace$$.log #set -x pdate=`date +%Y-%m-%d` ptime=`date +%H:%M` pyear=`date +%Y` index_header=0 #---------------------------------------------------------------------------------- # sub: write eislist header #---------------------------------------------------------------------------------- write_eislist_header () { # write header cat > ${pack_dir}/eis-list.txt < Packagelist of eisfair testteam # Copyright (c) 2001-${pyear} the eisfair team, c/o Frank Meyer, # Welcome to the eisfair test-team package server # index.txt # # Available packages: EOF } #---------------------------------------------------------------------------------- # sub: write eislist footer # now 4 empty lines added but remove it is update 1.4.0 given #---------------------------------------------------------------------------------- write_eislist_footer () { # write footer { echo "#" echo "# Last database update:" ${pdate} ${ptime} echo "#" echo "#" echo "#" echo "#" } >> ${pack_dir}/eis-list.txt chmod 0664 ${pack_dir}/eis-list.txt } #---------------------------------------------------------------------------------- # sub: write eislist entry #---------------------------------------------------------------------------------- write_eislist_entry () { section_info="${1}" section_entry="${2}" printf "%-15s %s \n" "${section_info}" "${section_entry}" >> ${pack_dir}/eis-list.txt } #---------------------------------------------------------------------------------- # create eis-list file # # input: $1 - package directory # return: 0 - ok # 1 - error accured #---------------------------------------------------------------------------------- create_eislist () { PREFIX_SEPARATOR="+" pack_dir="${1}" # remove all old stuff if [ -f ${pack_dir}/eis-list.txt ] then rm -f ${pack_dir}/eis-list.txt rm -f ${pack_dir}/index.txt fi # change dir cd ${pack_dir} # list package folder pack_folder="${package_dir_two}/*.info updates/update.tar.gz.info *.info " # for file.info in $pack_folder do for p_folder in ${pack_folder} do # check if .info-files exist ls ${p_folder} >/dev/null 2> /dev/null if [ ${?} -eq 0 ] then # first extract the 'short' statement to sort the outprint for FNAME in ${p_folder} do # grep short for sort entry entry_short=`grep '//; s/<\/short>$//'` # check for prefix separator is given case ${FNAME} in *${PREFIX_SEPARATOR}*) # strip prefix fname_strip=${FNAME#*${PREFIX_SEPARATOR}} # move prefix $packages in folder $package_dir_two mv ${FNAME} ${package_dir_two}/${fname_strip} mv ${FNAME%.info} ${package_dir_two}/${fname_strip%.info} # print list infos with ":" as separator printf "%-15s:%-60s: %s \n" "#" "${package_dir_two}/${fname_strip}" "'${entry_short}'" >> ${pack_dir}/XZ23-eis.list # print index create_index "${package_dir_two}/${fname_strip}" ;; *) # print list infos with ":" as separator printf "%-15s:%-60s: %s \n" "#" "${FNAME}" "'${entry_short}'" >> ${pack_dir}/XZ23-eis.list # print index create_index "${FNAME}" ;; esac # end first extract the 'short' statement to sort the outprint done # end if [ ${?} -eq 0 ] fi # for file.info in $pack_folder do done # sort list infos sort -k 1.80 ${pack_dir}/XZ23-eis.list >> ${pack_dir}/XZ23-eis$$.list max_nbr=`cat ${pack_dir}/XZ23-eis.list | wc -l` # set 'base' on top from list echo "`grep "base" ${pack_dir}/XZ23-eis$$.list`" >${pack_dir}/XZ23-eis$$-2.list grep -v "base" ${pack_dir}/XZ23-eis$$.list >> ${pack_dir}/XZ23-eis$$-2.list nbr_idx=0 # set IFS to ":" as separator old_ifs=${IFS} IFS=: # print eis-list.txt while read info line short do nbr_idx=`expr $nbr_idx + 1` #write header if [ ${nbr_idx} -eq 1 ] then write_eislist_header fi # write entry write_eislist_entry ${info} ${line} #write footer if [ ${nbr_idx} -eq ${max_nbr} ] then # restor IFS IFS=${old_ifs} write_eislist_footer fi done < ${pack_dir}/XZ23-eis$$-2.list # remove tmp files rm -f ${pack_dir}/XZ23-* # get index from pack-eis wget http://pack-eis.de/index.txt -O $pack_dir/index.pack-eis.txt # set separator lines in index.txt cat >> $pack_dir/index.txt <> $pack_dir/index.txt rm -f $pack_dir/index.pack-eis.txt chmod 0664 $pack_dir/index.txt } #---------------------------------------------------------------------------------- # create index.txt file #---------------------------------------------------------------------------------- create_index () { FNAME=${1} # check for index header if [ ${index_header} -eq 0 ] then # write index header cat > ${pack_dir}/index.txt <" ${FNAME} | sed 's###g'` # get $package version pack_version=`grep "" ${FNAME} | sed -e 's#\([0-9\.]*\).*#\1#'` # get $package status pack_status=`grep "" ${FNAME} | sed 's###g'` # output a little bit formatted, like index.txt from pack-eis printf "%-17s %-9s %-11s %s \n" ${pack_name} ${pack_version} ${pack_status} ${FNAME} >> ${pack_dir}/index.txt } #================================================================================== # main #================================================================================== index_file="https://eisler.eisfair.net/t-team_eis/tarballs/index.txt" pack_prefix="https://eisler.eisfair.net/t-team_eis/tarballs" package_dir="/var/www/t-team_eis/tarballs" package_dir_two="eisfair2" if [ -d ${package_dir} ] then echo "Creating eis-list in ${package_dir}" else echo "directory '${package_dir}' not found, aborted." >&2 exit 1 fi # check for subfolder '$package_dir_two' and create when missing if [ ! -d ${package_dir}/${package_dir_two} ] then mkdir -p ${package_dir}/${package_dir_two} chmod 775 ${package_dir}/${package_dir_two} chgrp src ${package_dir}/${package_dir_two} fi # do work create_eislist "${package_dir}" #================================================================================== # end #==================================================================================