File bundle.sh of Package bundle-lang-common

#!/bin/bash
#
# Copyright (c) 2007, 2008, SUSE Linux Products GmbH

# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.

. list_langs.sh

mkdir -p $RPM_BUILD_ROOT/usr/share/doc/packages/translations
for lang in $langs; do 
  : > filelist.$lang
  : > filelist.dirs.$lang
done

for package in "$@"; do 
 IFS=^
 rpm -q --qf "[%{RPMTAG_FILEFLAGS:fflags}^%{FILEMODES:perms}^%{FILELANGS}^%{FILENAMES}\n]" $package | \
  while read flag perm lang file; do

    if test -z "$lang"; then
       lang="en"
    fi

    echo -n "%lang($lang) " >> filelist.$lang
    if test "$flag" = "d"; then
      echo -n "%doc " >> filelist.$lang
    fi
    nfile=$file
    case $file in
       */locale/*)
          nfile=${file/locale/locale-bundle}
          ;;
       */doc/*)
          nfile=${file/doc/doc-bundle}
          ;;
       */help/*)
          nfile=${file/help/help-bundle}
          ;;
       */libgweather/*)
          nfile=${file/libgweather/libgweather/bundle}
          ;;
       */omf/*)
	  echo "FILE $file will conflict"
	  exit 1
	  ;;
    esac
    if test -d "$file"; then
      mkdir -p $RPM_BUILD_ROOT$nfile
      echo -n "%dir " >> filelist.$lang
    else
      dir=`dirname "$nfile"`
      mkdir -p $RPM_BUILD_ROOT$dir
      while true; do
	 case "$dir" in 
	    /usr/share)
	       break;
	       ;;
            /)
	       break;
	       ;;
         esac
         echo "%dir $dir" >> filelist.dirs.$lang
	 case "$dir" in 
            *-bundle)
	       break;
               ;;
            /)
	       break;
	       ;;
         esac
         dir=`dirname "$dir"`
      done
      cp -d --preserve=all -P "$file" $RPM_BUILD_ROOT$nfile
    fi
    echo "$nfile" >> filelist.$lang
 done
 unset IFS
done

for lang in $langs; do 
  sort -u filelist.dirs.$lang >> filelist.$lang
  rm filelist.dirs.$lang
done
openSUSE Build Service is sponsored by