Ticket #3750: 0002-Removing-PROG-files-and-improving-code-structure.patch

File 0002-Removing-PROG-files-and-improving-code-structure.patch, 25.5 KB (added by jtyr, 7 years ago)

0002-Removing-PROG-files-and-improving-code-structure.patch

  • src/vfs/extfs/helpers/rpm

    From 1b26fad91ceb6f44a99ff84f1d608df288ccf357 Mon Sep 17 00:00:00 2001
    From: Jiri Tyr <jiri.tyr@gmail.com>
    Date: Fri, 30 Dec 2016 16:18:23 +0000
    Subject: [PATCH 2/2] Removing *PROG files and improving code structure
    
    This patch removes the creation of the INFO/SCRIPT/*PROG files and
    replaces it by shebang in each of the scripts. Some code was also
    simplified and overall formating of the code and output was improved.
    
    Signed-off-by: Jiri Tyr <jiri.tyr@gmail.com>
    ---
     src/vfs/extfs/helpers/rpm | 580 ++++++++++++++++++++++++++++------------------
     1 file changed, 353 insertions(+), 227 deletions(-)
    
    diff --git a/src/vfs/extfs/helpers/rpm b/src/vfs/extfs/helpers/rpm
    index c0d07a00a..372a5f5f3 100755
    a b  
    88#  Erik Troan <ewt@redhat.com> 1996 
    99#  Jakub Jelinek <jj@sunsite.mff.cuni.cz> 1996, 2004 
    1010#  Tomasz Kłoczko <kloczek@rudy.mif.pg.gda.pl> 1997 
    11 #  Wojtek Pilorz <wpilorz@bdk.lublin.pl> 
    12 #       1997: minor changes 
    13 #  Michele Marziani <marziani@fe.infn.it> 
    14 #       1997: minor changes 
     11#  Wojtek Pilorz <wpilorz@bdk.lublin.pl> 1997 
     12#      minor changes 
     13#  Michele Marziani <marziani@fe.infn.it> 1997 
     14#      minor changes 
    1515#  Marc Merlin <marcsoft@merlins.org> 1998 
    16 #       1998: bug files 
     16#      bug files 
    1717#  Michal Svec <rebel@penguin.cz> 2000 
    18 #       2000: locale bugfix 
    19 #  Andrew V. Samoilov <sav@bcs.zp.ua> 
    20 #       2004: Whitespace(s) & single quote(s) in filename workaround 
    21 #             https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=64007 
    22 #  Slava Zanko <slavazanko@gmail.com> 
    23 #       2009: Totally rewritten. 
    24 #  Alexander Chumachenko <ledest@gmail.com> 
    25 #       2013: add dependency version output 
    26 #  Denis Silakov <denis.silakov@rosalab.ru> 
    27 #       2013: tar payload support. 
    28 #  Arkadiusz Miśkiewicz <arekm@maven.pl> 
    29 #       2013: improve support for EPOCH 
    30 #             add support for PREINPROG/POSTINPROG/PREUNPROG/POSTUNPROG 
    31 #             add support for VERIFYSCRIPTPROG 
    32 #             add support for TRIGGERSCRIPTS/TRIGGERSCRIPTPROG 
    33 #  Jiri Tyr <jiri.tyr@gmail.com> 
    34 #       2016: add support for PRETRANS/PRETRANSPROG/POSTTRANS/POSTTRANSPROG 
     18#       locale bugfix 
     19#  Andrew V. Samoilov <sav@bcs.zp.ua> 2004 
     20#       Whitespace(s) & single quote(s) in filename workaround 
     21#       https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=64007 
     22#  Slava Zanko <slavazanko@gmail.com> 2009 
     23#       Totally rewritten 
     24#  Alexander Chumachenko <ledest@gmail.com> 2013 
     25#       add dependency version output 
     26#  Denis Silakov <denis.silakov@rosalab.ru> 2013 
     27#       tar payload support 
     28#  Arkadiusz Miśkiewicz <arekm@maven.pl> 2013 
     29#       improve support for EPOCH 
     30#       add support for PREINPROG/POSTINPROG/PREUNPROG/POSTUNPROG 
     31#       add support for VERIFYSCRIPTPROG 
     32#       add support for TRIGGERSCRIPTS/TRIGGERSCRIPTPROG 
     33#  Jiri Tyr <jiri.tyr@gmail.com> 2016 
     34#       Added support for PRETRANS/POSTTRANS. 
     35#       Removed creation of all *PROG files. 
     36#       Code simplification and formating. 
    3537# 
    3638#  This file is part of the Midnight Commander. 
    3739# 
     
    4850#  You should have received a copy of the GNU General Public License 
    4951#  along with this program.  If not, see <http://www.gnu.org/licenses/>. 
    5052 
    51  
    52 # override any locale for dates 
     53# Override any locale for dates 
    5354unset LC_ALL 
    5455LC_TIME=C 
    5556export LC_TIME 
    5657 
    5758if rpmbuild --version >/dev/null 2>&1; then 
    58         RPMBUILD="rpmbuild" 
     59    RPMBUILD="rpmbuild" 
    5960else 
    60         RPMBUILD="rpm" 
     61    RPMBUILD="rpm" 
    6162fi 
    6263 
    6364if rpm --nosignature --version >/dev/null 2>&1; then 
    64   RPM="rpm --nosignature" 
    65   RPMBUILD="$RPMBUILD --nosignature" 
     65    RPM="rpm --nosignature" 
     66    RPMBUILD="$RPMBUILD --nosignature" 
    6667else 
    67   RPM="rpm" 
     68    RPM="rpm" 
    6869fi 
    69 RPM2CPIO="rpm2cpio" 
    7070 
     71RPM2CPIO="rpm2cpio" 
    7172SED="sed" 
    7273 
    7374param=$1; shift 
    7475rpm_filename=$1; shift 
    7576 
    76 FILEPREF="-r--r--r--   1 root     root    " 
     77FILEPREF_NOSIZE="-r--r--r--   1 root     root   " 
     78FILEPREF="$FILEPREF_NOSIZE 0" 
     79EXECPREF="-r-xr-xr-x   1 root     root     0" 
     80DIRPREF="dr-xr-xr-x   1 root     root     0" 
     81 
    7782 
    78 mcrpmfs_getSupportedTags() 
    79 { 
    80     rpm --querytags 
     83mcrpmfs_getSupportedTags() { 
     84    $RPM --querytags 
    8185} 
    8286 
    83 mcrpmfs_getDesription() 
    84 { 
    85     $RPM -qip "${rpm_filename}" 
     87 
     88mcrpmfs_getDesription() { 
     89    $RPM -qip "$rpm_filename" 
    8690} 
    8791 
    88 mcrpmfs_getAllNeededTags() 
    89 { 
     92 
     93mcrpmfs_getAllNeededTags() { 
    9094    supportedTags=`mcrpmfs_getSupportedTags` 
    91     if test "`echo supportedTags | grep -c CONFLICTS`" -eq 1; then 
    92         tag_CONFLICTS="|CONFLICTS=%{CONFLICTS}" 
     95 
     96    if test "`echo $supportedTags | grep -c CONFLICTS`" -eq 1; then 
     97        tag_CONFLICTS="|CONFLICTS=%{CONFLICTS}" 
    9398    else 
    94         tag_CONFLICTS="" 
     99        tag_CONFLICTS="" 
    95100    fi 
    96101 
    97102    $RPM -qp --qf \ 
    mcrpmfs_getAllNeededTags() 
    108113"|REQUIRES=%{REQUIRENAME} %{REQUIREFLAGS:depflags} %{REQUIREVERSION}"\ 
    109114"|OBSOLETES=%{OBSOLETES}"\ 
    110115"|PROVIDES=%{PROVIDES} %{PROVIDEFLAGS:depflags} %{PROVIDEVERSION}"\ 
    111 ${tag_CONFLICTS}\ 
     116"$tag_CONFLICTS"\ 
    112117"|PACKAGER=%{PACKAGER}" \ 
    113     "${rpm_filename}" 
     118"$rpm_filename" 
    114119} 
    115120 
    116 mcrpmfs_getRawOneTag() 
    117 { 
    118     $RPM -qp --qf "$1" "${rpm_filename}" 
     121 
     122mcrpmfs_getRawOneTag() { 
     123    $RPM -qp --qf "$1" "$rpm_filename" | sed -r 's/\s+$//' 
    119124} 
    120125 
    121 mcrpmfs_getOneTag() 
    122 { 
    123     echo $AllTAGS | $SED "s/.*|${1}=//" | cut -d '|' -f 1 
     126 
     127mcrpmfs_getOneTag() { 
     128    echo $ALLTAGS | $SED "s/.*|$1=//" | cut -d '|' -f 1 
    124129} 
    125130 
    126 AllTAGS=`mcrpmfs_getAllNeededTags "$1"` 
    127131 
    128 mcrpmfs_printOneMetaInfo() 
    129 { 
     132mcrpmfs_printOneMetaInfo() { 
    130133    if test "$3" = "raw"; then 
    131         metaInfo=`mcrpmfs_getRawOneTag "%{$2}"` 
     134        metaInfo=`mcrpmfs_getRawOneTag "%{$2}"` 
    132135    else 
    133         metaInfo=`mcrpmfs_getOneTag "$2"` 
     136        metaInfo=`mcrpmfs_getOneTag "$2"` 
    134137    fi 
    135138 
    136     if test -n "${metaInfo}"  -a "${metaInfo}" != "(none)"; then 
    137         echo "${FILEPREF} 0 ${DATE} ${1}" 
    138         return 0 
     139    if test -n "$metaInfo" -a "$metaInfo" != "(none)"; then 
     140        echo "$FILEPREF $DATE $1" 
     141        return 0 
    139142    fi 
    140     return 1 
    141 } 
    142143 
    143 mcrpmfs_list_fastRPM () 
    144 { 
    145     echo "$FILEPREF 0 $DATE INFO/DISTRIBUTION" 
    146     echo "$FILEPREF 0 $DATE INFO/VENDOR" 
    147     echo "$FILEPREF 0 $DATE INFO/DESCRIPTION" 
    148     echo "$FILEPREF 0 $DATE INFO/SUMMARY" 
    149     echo "dr-xr-xr-x   1 root     root     0 $DATE INFO/SCRIPTS" 
    150     echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PRETRANS" 
    151     echo "$FILEPREF 0 $DATE INFO/SCRIPTS/POSTTRANS" 
    152     echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PREIN" 
    153     echo "$FILEPREF 0 $DATE INFO/SCRIPTS/POSTIN" 
    154     echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PREUN" 
    155     echo "$FILEPREF 0 $DATE INFO/SCRIPTS/POSTUN" 
    156     echo "$FILEPREF 0 $DATE INFO/SCRIPTS/VERIFYSCRIPT" 
    157     echo "$FILEPREF 0 $DATE INFO/SCRIPTS/TRIGGERSCRIPTS" 
    158     echo "$FILEPREF 0 $DATE INFO/SCRIPTS/ALL" 
    159     echo "$FILEPREF 0 $DATE INFO/PACKAGER" 
    160     echo "$FILEPREF 0 $DATE INFO/URL" 
    161     echo "$FILEPREF 0 $DATE INFO/EPOCH" 
    162     echo "$FILEPREF 0 $DATE INFO/LICENSE" 
    163     echo "$FILEPREF 0 $DATE INFO/REQUIRES" 
    164     echo "$FILEPREF 0 $DATE INFO/OBSOLETES" 
    165     echo "$FILEPREF 0 $DATE INFO/PROVIDES" 
    166     echo "$FILEPREF 0 $DATE INFO/CONFLICTS" 
    167     echo "$FILEPREF 0 $DATE INFO/CHANGELOG" 
     144    return 1 
    168145} 
    169146 
    170 mcrpmfs_list_fullRPM () 
    171 { 
    172     mcrpmfs_printOneMetaInfo "INFO/DISTRIBUTION" "DISTRIBUTION" 
    173     mcrpmfs_printOneMetaInfo "INFO/VENDOR" "VENDOR" 
    174     mcrpmfs_printOneMetaInfo "INFO/DESCRIPTION" "DESCRIPTION" 
    175     mcrpmfs_printOneMetaInfo "INFO/SUMMARY" "SUMMARY" 
    176147 
    177     if test "`mcrpmfs_getRawOneTag \"%{RPMTAG_PRETRANS}%{RPMTAG_POSTTRANS}%{RPMTAG_PREIN}%{RPMTAG_POSTIN}%{RPMTAG_PREUN}%{RPMTAG_POSTUN}%{VERIFYSCRIPT}%{TRIGGERSCRIPTS}\"`" != "(none)(none)(none)(none)(none)(none)(none)(none)"; then 
    178         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/PRETRANS" "RPMTAG_PRETRANS" "raw" 
    179         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/POSTTRANS" "RPMTAG_POSTTRANS" "raw" 
    180         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/PREIN" "RPMTAG_PREIN" "raw" 
    181         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/POSTIN" "RPMTAG_POSTIN" "raw" 
    182         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/PREUN" "RPMTAG_PREUN" "raw" 
    183         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/POSTUN" "RPMTAG_POSTUN" "raw" 
    184         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/VERIFYSCRIPT" "VERIFYSCRIPT" "raw" 
    185         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/TRIGGERSCRIPTS" "TRIGGERSCRIPTS" "raw" 
    186         echo "$FILEPREF 0 $DATE INFO/SCRIPTS/ALL" 
    187     fi 
     148mcrpmfs_list_fastRPM() { 
     149    echo "$FILEPREF $DATE INFO/CHANGELOG" 
     150    echo "$FILEPREF $DATE INFO/CONFLICTS" 
     151    echo "$FILEPREF $DATE INFO/DESCRIPTION" 
     152    echo "$FILEPREF $DATE INFO/DISTRIBUTION" 
     153    echo "$FILEPREF $DATE INFO/EPOCH" 
     154    echo "$FILEPREF $DATE INFO/LICENSE" 
     155    echo "$FILEPREF $DATE INFO/OBSOLETES" 
     156    echo "$FILEPREF $DATE INFO/PACKAGER" 
     157    echo "$FILEPREF $DATE INFO/PROVIDES" 
     158    echo "$FILEPREF $DATE INFO/REQUIRES" 
     159    echo "$FILEPREF $DATE INFO/SUMMARY" 
     160    echo "$FILEPREF $DATE INFO/URL" 
     161    echo "$FILEPREF $DATE INFO/VENDOR" 
     162    echo "$DIRPREF $DATE INFO/SCRIPTS" 
     163    echo "$FILEPREF $DATE INFO/SCRIPTS/ALL" 
     164    echo "$FILEPREF $DATE INFO/SCRIPTS/POSTIN" 
     165    echo "$FILEPREF $DATE INFO/SCRIPTS/POSTTRANS" 
     166    echo "$FILEPREF $DATE INFO/SCRIPTS/POSTUN" 
     167    echo "$FILEPREF $DATE INFO/SCRIPTS/PREIN" 
     168    echo "$FILEPREF $DATE INFO/SCRIPTS/PRETRANS" 
     169    echo "$FILEPREF $DATE INFO/SCRIPTS/PREUN" 
     170    echo "$FILEPREF $DATE INFO/SCRIPTS/TRIGGERSCRIPTS" 
     171    echo "$FILEPREF $DATE INFO/SCRIPTS/VERIFYSCRIPT" 
     172} 
    188173 
    189     if test "`mcrpmfs_getRawOneTag \"%{RPMTAG_PRETRANSPROG}%{RPMTAG_POSTTRANSPROG}%{RPMTAG_PREINPROG}%{RPMTAG_POSTINPROG}%{RPMTAG_PREUNPROG}%{RPMTAG_POSTUNPROG}%{VERIFYSCRIPTPROG}%{TRIGGERSCRIPTPROG}\"`" != "(none)(none)(none)(none)(none)(none)(none)(none)"; then 
    190         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/PRETRANSPROG" "RPMTAG_PRETRANSPROG" "raw" 
    191         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/POSTTRANSPROG" "RPMTAG_POSTTRANSPROG" "raw" 
    192         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/PREINPROG" "RPMTAG_PREINPROG" "raw" 
    193         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/POSTINPROG" "RPMTAG_POSTINPROG" "raw" 
    194         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/PREUNPROG" "RPMTAG_PREUNPROG" "raw" 
    195         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/POSTUNPROG" "RPMTAG_POSTUNPROG" "raw" 
    196         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/VERIFYSCRIPTPROG" "VERIFYSCRIPTPROG" "raw" 
    197         mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/TRIGGERSCRIPTPROG" "TRIGGERSCRIPTPROG" "raw" 
    198     fi 
    199174 
    200     mcrpmfs_printOneMetaInfo "INFO/PACKAGER" "PACKAGER" 
    201     mcrpmfs_printOneMetaInfo "INFO/URL" "URL" 
     175mcrpmfs_list_fullRPM() { 
     176    mcrpmfs_printOneMetaInfo "INFO/CHANGELOG" "CHANGELOGTEXT" "raw" 
     177    mcrpmfs_printOneMetaInfo "INFO/CONFLICTS" "CONFLICTS" 
     178    mcrpmfs_printOneMetaInfo "INFO/DESCRIPTION" "DESCRIPTION" 
     179    mcrpmfs_printOneMetaInfo "INFO/DISTRIBUTION" "DISTRIBUTION" 
    202180    mcrpmfs_printOneMetaInfo "INFO/EPOCH" "EPOCH" 
    203181    mcrpmfs_printOneMetaInfo "INFO/LICENSE" "LICENSE" 
    204  
    205     mcrpmfs_printOneMetaInfo "INFO/REQUIRES" "REQUIRES" 
    206182    mcrpmfs_printOneMetaInfo "INFO/OBSOLETES" "OBSOLETES" 
     183    mcrpmfs_printOneMetaInfo "INFO/PACKAGER" "PACKAGER" 
    207184    mcrpmfs_printOneMetaInfo "INFO/PROVIDES" "PROVIDES" 
    208     mcrpmfs_printOneMetaInfo "INFO/CONFLICTS" "CONFLICTS" 
    209     mcrpmfs_printOneMetaInfo "INFO/CHANGELOG" "CHANGELOGTEXT" "raw" 
     185    mcrpmfs_printOneMetaInfo "INFO/REQUIRES" "REQUIRES" 
     186    mcrpmfs_printOneMetaInfo "INFO/SUMMARY" "SUMMARY" 
     187    mcrpmfs_printOneMetaInfo "INFO/URL" "URL" 
     188    mcrpmfs_printOneMetaInfo "INFO/VENDOR" "VENDOR" 
     189 
     190    if test "`mcrpmfs_getRawOneTag \"%{RPMTAG_PRETRANS}%{RPMTAG_POSTTRANS}%{RPMTAG_PREIN}%{RPMTAG_POSTIN}%{RPMTAG_PREUN}%{RPMTAG_POSTUN}%{VERIFYSCRIPT}%{TRIGGERSCRIPTS}\"`" != "(none)(none)(none)(none)(none)(none)(none)(none)"; then 
     191        echo "$FILEPREF $DATE INFO/SCRIPTS/ALL" 
     192        mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/PRETRANS" "RPMTAG_PRETRANS" "raw" 
     193        mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/POSTTRANS" "RPMTAG_POSTTRANS" "raw" 
     194        mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/PREIN" "RPMTAG_PREIN" "raw" 
     195        mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/POSTIN" "RPMTAG_POSTIN" "raw" 
     196        mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/PREUN" "RPMTAG_PREUN" "raw" 
     197        mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/POSTUN" "RPMTAG_POSTUN" "raw" 
     198        mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/VERIFYSCRIPT" "VERIFYSCRIPT" "raw" 
     199        mcrpmfs_printOneMetaInfo "INFO/SCRIPTS/TRIGGERSCRIPTS" "TRIGGERSCRIPTS" "raw" 
     200    fi 
    210201} 
    211202 
    212 mcrpmfs_list () 
    213 { 
    214     # set MCFASTRPM_DFLT to 1 for faster rpm files handling by default, to 0 for 
    215     # slower handling 
     203 
     204mcrpmfs_list() { 
     205    # Set MCFASTRPM_DFLT to 1 for faster rpm files handling by default, to 0 
     206    # for slower handling 
    216207    MCFASTRPM_DFLT=0 
     208 
    217209    if test -z "$MCFASTRPM"; then 
    218210      MCFASTRPM=$MCFASTRPM_DFLT 
    219211    fi 
    220212 
    221213    DESC=`mcrpmfs_getDesription 2>/dev/null` || { 
    222         echo "$FILEPREF 0 "`date +"%b %d %H:%M"`" ERROR" 
    223         exit 1 
     214        echo "$FILEPREF "`date +"%b %d %H:%M"`" ERROR" 
     215        exit 1 
    224216    } 
    225217    DATE=`mcrpmfs_getRawOneTag "%{BUILDTIME:date}\n" | cut -c 5-11,21-24` 
    226218    PAYLOAD=`mcrpmfs_getRawOneTag "%{PAYLOADFORMAT}\n" | sed s/ustar/tar/` 
    227  
    228219    HEADERSIZE=`echo "$DESC" | wc -c` 
    229     printf '%s %s %s HEADER\n' "${FILEPREF}"  "${HEADERSIZE}" "${DATE}" 
    230     echo "-r-xr-xr-x   1 root     root    39 $DATE INSTALL" 
    231     case "${rpm_filename}" in 
    232         *.src.rpm) 
    233             echo "-r-xr-xr-x   1 root     root    39 $DATE REBUILD" 
    234         ;; 
    235         *) 
    236             echo "-r-xr-xr-x   1 root     root    39 $DATE UPGRADE" 
    237         ;; 
     220 
     221    echo "$FILEPREF $DATE CONTENTS.$PAYLOAD" 
     222    printf '%s %s %s HEADER\n' "$FILEPREF_NOSIZE" "$HEADERSIZE" "$DATE" 
     223    echo "$EXECPREF $DATE INSTALL" 
     224 
     225    case "$rpm_filename" in 
     226        *.src.rpm) 
     227            echo "$EXECPREF $DATE REBUILD" 
     228            ;; 
     229        *) 
     230            echo "$EXECPREF $DATE UPGRADE" 
     231            ;; 
    238232    esac 
    239233 
    240     echo "dr-xr-xr-x   3 root     root     0 $DATE INFO" 
     234    echo "$DIRPREF $DATE INFO" 
     235 
    241236    if [ `mcrpmfs_getRawOneTag "%{EPOCH}"` = "(none)" ]; then 
    242         echo "$FILEPREF 0 $DATE INFO/NAME-VERSION-RELEASE" 
     237        echo "$FILEPREF $DATE INFO/NAME-VERSION-RELEASE" 
    243238    else 
    244         echo "$FILEPREF 0 $DATE INFO/NAME-EPOCH:VERSION-RELEASE" 
     239        echo "$FILEPREF $DATE INFO/NAME-EPOCH:VERSION-RELEASE" 
    245240    fi 
    246     echo "$FILEPREF 0 $DATE INFO/GROUP" 
    247     echo "$FILEPREF 0 $DATE INFO/BUILDHOST" 
    248     echo "$FILEPREF 0 $DATE INFO/SOURCERPM" 
    249     echo "$FILEPREF 0 $DATE INFO/BUILDTIME" 
    250     echo "$FILEPREF 0 $DATE INFO/RPMVERSION" 
    251     echo "$FILEPREF 0 $DATE INFO/OS" 
    252     echo "$FILEPREF 0 $DATE INFO/SIZE" 
    253  
    254     if test "$MCFASTRPM" = 0 ; then 
    255         mcrpmfs_list_fullRPM 
     241 
     242    echo "$FILEPREF $DATE INFO/BUILDHOST" 
     243    echo "$FILEPREF $DATE INFO/BUILDTIME" 
     244    echo "$FILEPREF $DATE INFO/GROUP" 
     245    echo "$FILEPREF $DATE INFO/OS" 
     246    echo "$FILEPREF $DATE INFO/RPMVERSION" 
     247    echo "$FILEPREF $DATE INFO/SIZE" 
     248    echo "$FILEPREF $DATE INFO/SOURCERPM" 
     249 
     250    if test "$MCFASTRPM" = 0; then 
     251        mcrpmfs_list_fullRPM 
    256252    else 
    257         mcrpmfs_list_fastRPM 
     253        mcrpmfs_list_fastRPM 
    258254    fi 
    259  
    260     echo "$FILEPREF 0 $DATE CONTENTS.$PAYLOAD" 
    261255} 
    262256 
    263 mcrpmfs_copyout () 
    264 { 
     257 
     258mcrpmfs_copyout() { 
    265259    case "$1" in 
    266         HEADER) mcrpmfs_getDesription > "$2"; exit 0;; 
    267         INSTALL) 
    268             echo "# Run this script to install this RPM package" > "$2" 
    269             echo $RPM -ivh "${rpm_filename}" >> "$2" 
    270             exit 0 
    271         ;; 
    272         UPGRADE) 
    273             echo "# Run this to upgrade this RPM package" > "$2" 
    274             echo $RPM -Uvh "${rpm_filename}" >> "$2" 
    275             exit 0 
    276         ;; 
    277         REBUILD) 
    278             echo "# Run this to rebuild this RPM package" > "$2" 
    279             echo $RPMBUILD --rebuild "${rpm_filename}" >> "$2" 
    280             exit 0 
    281         ;; 
    282         ERROR) mcrpmfs_getDesription > /dev/null 2> "$2"; exit 0;; 
    283         INFO/NAME-VERSION-RELEASE) 
    284             echo `mcrpmfs_getOneTag "NAME"`-`mcrpmfs_getOneTag "VERSION"`-`mcrpmfs_getOneTag "RELEASE"` > "$2" 
    285             exit 0 
    286         ;; 
    287         INFO/NAME-EPOCH:VERSION-RELEASE) 
    288             echo `mcrpmfs_getOneTag "NAME"`-`mcrpmfs_getOneTag "EPOCH"`:`mcrpmfs_getOneTag "VERSION"`-`mcrpmfs_getOneTag "RELEASE"` > "$2" 
    289             exit 0 
    290         ;; 
    291         INFO/RELEASE)           mcrpmfs_getOneTag "RELEASE" > "$2"; exit 0;; 
    292         INFO/GROUP)             mcrpmfs_getRawOneTag "%{GROUP}\n" > "$2"; exit 0;; 
    293         INFO/DISTRIBUTION)      mcrpmfs_getOneTag "DISTRIBUTION" > "$2"; exit 0;; 
    294         INFO/VENDOR)            mcrpmfs_getOneTag "VENDOR" > "$2"; exit 0;; 
    295         INFO/BUILDHOST)         mcrpmfs_getRawOneTag "%{BUILDHOST}\n" > "$2"; exit 0;; 
    296         INFO/SOURCERPM)         mcrpmfs_getRawOneTag "%{SOURCERPM}\n" > "$2"; exit 0;; 
    297         INFO/DESCRIPTION)       mcrpmfs_getRawOneTag "%{DESCRIPTION}\n" > "$2"; exit 0;; 
    298         INFO/PACKAGER)          mcrpmfs_getOneTag "PACKAGER" > "$2"; exit 0;; 
    299         INFO/URL)               mcrpmfs_getOneTag "URL" >"$2"; exit 0;; 
    300         INFO/BUILDTIME)         mcrpmfs_getRawOneTag "%{BUILDTIME:date}\n" >"$2"; exit 0;; 
    301         INFO/EPOCH)             mcrpmfs_getOneTag "EPOCH" >"$2"; exit 0;; 
    302         INFO/LICENSE)           mcrpmfs_getOneTag "LICENSE" >"$2"; exit 0;; 
    303         INFO/RPMVERSION)        mcrpmfs_getRawOneTag "%{RPMVERSION}\n" >"$2"; exit 0;; 
    304         INFO/REQUIRES)          mcrpmfs_getRawOneTag "[%{REQUIRENAME} %{REQUIREFLAGS:depflags} %{REQUIREVERSION}\n]" >"$2"; exit 0;; 
    305         INFO/PROVIDES)          mcrpmfs_getRawOneTag "[%{PROVIDES} %{PROVIDEFLAGS:depflags} %{PROVIDEVERSION}\n]" >"$2"; exit 0;; 
    306         INFO/SCRIPTS/PRETRANS)  mcrpmfs_getRawOneTag "%{RPMTAG_PRETRANS}\n" >"$2"; exit 0;; 
    307         INFO/SCRIPTS/PRETRANSPROG)      mcrpmfs_getRawOneTag "%{RPMTAG_PRETRANSPROG}\n" >"$2"; exit 0;; 
    308         INFO/SCRIPTS/POSTTRANS) mcrpmfs_getRawOneTag "%{RPMTAG_POSTTRANS}\n" >"$2"; exit 0;; 
    309         INFO/SCRIPTS/POSTTRANSPROG)     mcrpmfs_getRawOneTag "%{RPMTAG_POSTTRANSPROG}\n" >"$2"; exit 0;; 
    310         INFO/SCRIPTS/PREIN)     mcrpmfs_getRawOneTag "%{RPMTAG_PREIN}\n" >"$2"; exit 0;; 
    311         INFO/SCRIPTS/PREINPROG) mcrpmfs_getRawOneTag "%{RPMTAG_PREINPROG}\n" >"$2"; exit 0;; 
    312         INFO/SCRIPTS/POSTIN)    mcrpmfs_getRawOneTag "%{RPMTAG_POSTIN}\n" >"$2"; exit 0;; 
    313         INFO/SCRIPTS/POSTINPROG)        mcrpmfs_getRawOneTag "%{RPMTAG_POSTINPROG}\n" >"$2"; exit 0;; 
    314         INFO/SCRIPTS/PREUN)     mcrpmfs_getRawOneTag "%{RPMTAG_PREUN}\n" >"$2"; exit 0;; 
    315         INFO/SCRIPTS/PREUNPROG) mcrpmfs_getRawOneTag "%{RPMTAG_PREUNPROG}\n" >"$2"; exit 0;; 
    316         INFO/SCRIPTS/POSTUN)    mcrpmfs_getRawOneTag "%{RPMTAG_POSTUN}\n" >"$2"; exit 0;; 
    317         INFO/SCRIPTS/POSTUNPROG)        mcrpmfs_getRawOneTag "%{RPMTAG_POSTUNPROG}\n" >"$2"; exit 0;; 
    318         INFO/SCRIPTS/VERIFYSCRIPT)      mcrpmfs_getRawOneTag "%{VERIFYSCRIPT}\n" > "$2"; exit 0;; 
    319         INFO/SCRIPTS/VERIFYSCRIPTPROG)  mcrpmfs_getRawOneTag "%{VERIFYSCRIPTPROG}\n" > "$2"; exit 0;; 
    320         INFO/SCRIPTS/TRIGGERSCRIPTS)    $RPM -qp --triggers "${rpm_filename}" > "$2"; exit 0;; 
    321         INFO/SCRIPTS/TRIGGERSCRIPTPROG) mcrpmfs_getRawOneTag "%{TRIGGERSCRIPTPROG}\n" > "$2"; exit 0;; 
    322         INFO/SCRIPTS/ALL)               $RPM -qp --scripts "${rpm_filename}" > "$2"; exit 0;; 
    323         INFO/SUMMARY)           mcrpmfs_getRawOneTag "%{SUMMARY}\n" > "$2"; exit 0;; 
    324         INFO/OS)                mcrpmfs_getRawOneTag "%{OS}\n" > "$2"; exit 0;; 
    325         INFO/CHANGELOG)         mcrpmfs_getRawOneTag "[* %{CHANGELOGTIME:date} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n\n]\n" > "$2"; exit 0;; 
    326         INFO/SIZE)              mcrpmfs_getRawOneTag "%{SIZE} bytes\n" > "$2"; exit 0;; 
    327         INFO/OBSOLETES)         mcrpmfs_getRawOneTag "[%{OBSOLETENAME} %|OBSOLETEFLAGS?{%{OBSOLETEFLAGS:depflags} %{OBSOLETEVERSION}}:{}|\n]" > "$2"; exit 0;; 
    328         INFO/CONFLICTS)         mcrpmfs_getRawOneTag "[%{CONFLICTNAME} %{CONFLICTFLAGS:depflags} %{CONFLICTVERSION}\n]" >"$2"; exit 0;; 
    329         CONTENTS.*)             $RPM2CPIO "${rpm_filename}" > "$2"; exit 0;; 
    330         *) 
    331             ;; 
     260        INSTALL) 
     261            echo "# Run this script to install this RPM package" >"$2" 
     262            echo $RPM -ivh "$rpm_filename" >>"$2" 
     263            exit 0 
     264            ;; 
     265        REBUILD) 
     266            echo "# Run this to rebuild this RPM package" >"$2" 
     267            echo $RPMBUILD --rebuild "$rpm_filename" >>"$2" 
     268            exit 0 
     269            ;; 
     270        UPGRADE) 
     271            echo "# Run this to upgrade this RPM package" >"$2" 
     272            echo $RPM -Uvh "$rpm_filename" >>"$2" 
     273            exit 0 
     274            ;; 
     275        HEADER) 
     276            mcrpmfs_getDesription >"$2" 
     277            exit 0 
     278            ;; 
     279        ERROR) 
     280            mcrpmfs_getDesription >/dev/null 2>"$2" 
     281            exit 0 
     282            ;; 
     283        CONTENTS.*) 
     284            $RPM2CPIO "$rpm_filename" >"$2" 
     285            exit 0 
     286            ;; 
     287        INFO/BUILDHOST) 
     288            mcrpmfs_getRawOneTag "%{BUILDHOST}\n" >"$2" 
     289            exit 0 
     290            ;; 
     291        INFO/BUILDTIME) 
     292            mcrpmfs_getRawOneTag "%{BUILDTIME:date}\n" >"$2" 
     293            exit 0 
     294            ;; 
     295        INFO/CHANGELOG) 
     296            mcrpmfs_getRawOneTag "[* %{CHANGELOGTIME:date} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n\n]\n" | sort | uniq >"$2" 
     297            exit 0 
     298            ;; 
     299        INFO/CONFLICTS) 
     300            mcrpmfs_getRawOneTag "[%{CONFLICTNAME} %{CONFLICTFLAGS:depflags} %{CONFLICTVERSION}\n]" | sort | uniq >"$2" 
     301            exit 0 
     302            ;; 
     303        INFO/DESCRIPTION) 
     304            mcrpmfs_getRawOneTag "%{DESCRIPTION}\n" >"$2" 
     305            exit 0 
     306            ;; 
     307        INFO/DISTRIBUTION) 
     308            mcrpmfs_getOneTag "DISTRIBUTION" >"$2" 
     309            exit 0 
     310            ;; 
     311        INFO/EPOCH) 
     312            mcrpmfs_getOneTag "EPOCH" >"$2" 
     313            exit 0 
     314            ;; 
     315        INFO/GROUP) 
     316            mcrpmfs_getRawOneTag "%{GROUP}\n" >"$2" 
     317            exit 0 
     318            ;; 
     319        INFO/LICENSE) 
     320            mcrpmfs_getOneTag "LICENSE" >"$2" 
     321            exit 0 
     322            ;; 
     323        INFO/NAME-EPOCH:VERSION-RELEASE) 
     324            echo `mcrpmfs_getOneTag "NAME"`-`mcrpmfs_getOneTag "EPOCH"`:`mcrpmfs_getOneTag "VERSION"`-`mcrpmfs_getOneTag "RELEASE"` >"$2" 
     325            exit 0 
     326            ;; 
     327        INFO/NAME-VERSION-RELEASE) 
     328            echo `mcrpmfs_getOneTag "NAME"`-`mcrpmfs_getOneTag "VERSION"`-`mcrpmfs_getOneTag "RELEASE"` >"$2" 
     329            exit 0 
     330            ;; 
     331        INFO/OBSOLETES) 
     332            mcrpmfs_getRawOneTag "[%{OBSOLETENAME} %|OBSOLETEFLAGS?{%{OBSOLETEFLAGS:depflags} %{OBSOLETEVERSION}}:{}|\n]" | sort | uniq >"$2" 
     333            exit 0 
     334            ;; 
     335        INFO/OS) 
     336            mcrpmfs_getRawOneTag "%{OS}\n" >"$2" 
     337            exit 0 
     338            ;; 
     339        INFO/PACKAGER) 
     340            mcrpmfs_getOneTag "PACKAGER" >"$2" 
     341            exit 0 
     342            ;; 
     343        INFO/PROVIDES) 
     344            mcrpmfs_getRawOneTag "[%{PROVIDES} %{PROVIDEFLAGS:depflags} %{PROVIDEVERSION}\n]" | sort | uniq >"$2" 
     345            exit 0 
     346            ;; 
     347        INFO/RELEASE) 
     348            mcrpmfs_getOneTag "RELEASE" >"$2" 
     349            exit 0 
     350            ;; 
     351        INFO/REQUIRES) 
     352            mcrpmfs_getRawOneTag "[%{REQUIRENAME} %{REQUIREFLAGS:depflags} %{REQUIREVERSION}\n]" | sort | uniq >"$2" 
     353            exit 0 
     354            ;; 
     355        INFO/RPMVERSION) 
     356            mcrpmfs_getRawOneTag "%{RPMVERSION}\n" >"$2" 
     357            exit 0 
     358            ;; 
     359        INFO/SIZE) 
     360            mcrpmfs_getRawOneTag "%{SIZE} bytes\n" >"$2" 
     361            exit 0 
     362            ;; 
     363        INFO/SOURCERPM) 
     364            mcrpmfs_getRawOneTag "%{SOURCERPM}\n" >"$2" 
     365            exit 0 
     366            ;; 
     367        INFO/SUMMARY) 
     368            mcrpmfs_getRawOneTag "%{SUMMARY}\n" >"$2" 
     369            exit 0 
     370            ;; 
     371        INFO/URL) 
     372            mcrpmfs_getOneTag "URL" >"$2" 
     373            exit 0 
     374            ;; 
     375        INFO/VENDOR) 
     376            mcrpmfs_getOneTag "VENDOR" >"$2" 
     377            exit 0 
     378            ;; 
     379        INFO/SCRIPTS/ALL) 
     380            $RPM -qp --scripts "$rpm_filename" >"$2" 
     381            exit 0 
     382            ;; 
     383        INFO/SCRIPTS/PREIN) 
     384            echo -n "#!" >"$2" 
     385            mcrpmfs_getRawOneTag "%{RPMTAG_PREINPROG}\n" >>"$2" 
     386            mcrpmfs_getRawOneTag "%{RPMTAG_PREIN}\n" >>"$2" 
     387            exit 0 
     388            ;; 
     389        INFO/SCRIPTS/POSTIN) 
     390            echo -n "#!" >"$2" 
     391            mcrpmfs_getRawOneTag "%{RPMTAG_POSTINPROG}\n" >>"$2" 
     392            mcrpmfs_getRawOneTag "%{RPMTAG_POSTIN}\n" >>"$2" 
     393            exit 0 
     394            ;; 
     395        INFO/SCRIPTS/PREUN) 
     396            echo -n "#!" >"$2" 
     397            mcrpmfs_getRawOneTag "%{RPMTAG_PREUNPROG}\n" >>"$2" 
     398            mcrpmfs_getRawOneTag "%{RPMTAG_PREUN}\n" >>"$2" 
     399            exit 0 
     400            ;; 
     401        INFO/SCRIPTS/POSTUN) 
     402            echo -n "#!" >"$2" 
     403            mcrpmfs_getRawOneTag "%{RPMTAG_POSTUNPROG}\n" >>"$2" 
     404            mcrpmfs_getRawOneTag "%{RPMTAG_POSTUN}\n" >>"$2" 
     405            exit 0 
     406            ;; 
     407        INFO/SCRIPTS/PRETRANS) 
     408            echo -n "#!" >"$2" 
     409            mcrpmfs_getRawOneTag "%{RPMTAG_PRETRANSPROG}\n" >>"$2" 
     410            mcrpmfs_getRawOneTag "%{RPMTAG_PRETRANS}\n" >>"$2" 
     411            exit 0 
     412            ;; 
     413        INFO/SCRIPTS/POSTTRANS) 
     414            echo -n "#!" >"$2" 
     415            mcrpmfs_getRawOneTag "%{RPMTAG_POSTTRANSPROG}\n" >>"$2" 
     416            mcrpmfs_getRawOneTag "%{RPMTAG_POSTTRANS}\n" >>"$2" 
     417            exit 0 
     418            ;; 
     419        INFO/SCRIPTS/TRIGGERSCRIPTS) 
     420            echo -n "#!" >"$2" 
     421            mcrpmfs_getRawOneTag "%{TRIGGERSCRIPTPROG}\n" >>"$2" 
     422            $RPM -qp --triggers "$rpm_filename" >>"$2" 
     423            exit 0 
     424            ;; 
     425        INFO/SCRIPTS/VERIFYSCRIPT) 
     426            echo -n "#!" >"$2" 
     427            mcrpmfs_getRawOneTag "%{VERIFYSCRIPTPROG}\n" >>"$2" 
     428            mcrpmfs_getRawOneTag "%{VERIFYSCRIPT}\n" >>"$2" 
     429            exit 0 
     430            ;; 
     431        *) 
     432            ;; 
    332433    esac 
    333434} 
    334435 
    335 mcrpmfs_run () 
    336 { 
     436 
     437mcrpmfs_run() { 
    337438    case "$1" in 
    338         INSTALL) echo "Installing \"${rpm_filename}\""; $RPM -ivh "${rpm_filename}"; exit 0;; 
    339         UPGRADE) echo "Upgrading \"${rpm_filename}\""; $RPM -Uvh "${rpm_filename}"; exit 0;; 
    340         REBUILD) echo "Rebuilding \"${rpm_filename}\""; $RPMBUILD --rebuild "${rpm_filename}"; exit 0;; 
     439        INSTALL) 
     440            echo "Installing \"$rpm_filename\"" 
     441            $RPM -ivh "$rpm_filename" 
     442            exit 0 
     443            ;; 
     444        UPGRADE) 
     445            echo "Upgrading \"$rpm_filename\"" 
     446            $RPM -Uvh "$rpm_filename" 
     447            exit 0 
     448            ;; 
     449        REBUILD) 
     450            echo "Rebuilding \"$rpm_filename\"" 
     451            $RPMBUILD --rebuild "$rpm_filename" 
     452            exit 0 
     453            ;; 
    341454    esac 
    342455} 
    343456 
     457 
     458ALLTAGS=`mcrpmfs_getAllNeededTags "$1"` 
    344459umask 077 
    345 case "${param}" in 
    346   list) mcrpmfs_list; exit 0;; 
    347   copyout) mcrpmfs_copyout "$1" "$2"; exit 0;; 
    348   run) mcrpmfs_run "$1"; exit 1;; 
     460 
     461case "$param" in 
     462    list) 
     463        mcrpmfs_list 
     464        exit 0 
     465        ;; 
     466    copyout) 
     467        mcrpmfs_copyout "$1" "$2" 
     468        exit 0 
     469        ;; 
     470    run) 
     471        mcrpmfs_run "$1" 
     472        exit 1 
     473        ;; 
    349474esac 
     475 
    350476exit 1