Home | History | Annotate | Download | only in scripts
      1 #!/bin/sh
      2 
      3 PROGNAME=`basename $0`
      4 PROG_VERSION=0.2
      5 CREATE_COPYRIGHT=0
      6 TYPE_GNOME=1
      7 TYPE_TJDS=2
      8 TYPE_DESKTOP_OTHER=3
      9 TYPE=$TYPE_GNOME
     10 AVAILABLE_TYPES="gnome tjds desktop-other"
     11 MERGE_BASE_COPYRIGHT=0
     12 LANG=C
     13 
     14 export LANG
     15 
     16 init ()
     17 {
     18   while [ $# -gt 0 ]
     19   do
     20     case "$1" in
     21     -c|--create)
     22       CREATE_COPYRIGHT=1;;
     23     -h|--help)
     24       usage
     25       exit 0;;
     26     -m|--merge)
     27       MERGE_BASE_COPYRIGHT=1;;
     28     -t|--type)
     29       shift
     30       case "$1" in
     31       desktop-other)
     32         TYPE=$TYPE_DESKTOP_OTHER;;
     33       gnome|GNOME)
     34         TYPE=$TYPE_GNOME;;
     35       tjds|TJDS)
     36         TYPE=$TYPE_TJDS;;
     37       *)
     38         echo "Unknown type $1" 1>&2
     39         echo "Please use the either type $AVAILABLE_TYPES" 1>&2
     40         exit 1;;
     41       esac
     42       ;;
     43     *)
     44       echo "$PROGNAME: processing error: $1" 1>&2
     45       exit 1;;
     46     esac
     47     shift
     48   done
     49 }
     50 
     51 usage ()
     52 {
     53   printf "This script makes L10N copyright files from "
     54   printf "/usr/share/locale/LANG/LC_MESSAGES/COPYING.foo .\n"
     55   printf "\n"
     56   printf "usage: $PROGNAME Version $PROG_VERSION -c|-m [OPTIONS...]\n"
     57   printf "  -c, --create                      Create l10n copyright files.\n"
     58   printf "  -m, --merge                       Merge l10n copyright files with base ones.\n"
     59   printf "                                    This option is used after -c is run.\n"
     60   printf "  -h, --help                        Show this message.\n"
     61   printf "\n"
     62   printf "Options:\n"
     63   printf "  -t, --type TYPE                   $AVAILABLE_TYPES is available for TYPE.\n"
     64   printf "                                    the default is gnome.\n"
     65   printf "\n"
     66   printf "NOTE: This overrides the copyright files in $HOME/packages/spec-files/copyright/*.\n"
     67 }
     68 
     69 _get_group_copyright ()
     70 {
     71   rm -f $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright
     72   echo "Creating $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright ..."
     73   cat $COPY_ORG_DIR/${COPY_ORG}.copyright \
     74     >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright
     75 
     76   for LING in $LING_MESSAGE
     77   do
     78     echo "" >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright
     79     echo "-------------------------------------------------------------" \
     80       >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright
     81     echo "" >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright
     82 
     83     COPY_MESSAGES_DIR=/usr/share/locale/$LING/LC_MESSAGES
     84     gzcat $COPY_MESSAGES_DIR/$COPY_MESSAGES \
     85       >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright
     86   done
     87 
     88   rm -f $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright
     89   echo "Creating $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright ..."
     90   cat $COPY_ORG_DIR/${COPY_ORG}.copyright \
     91     >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright
     92 
     93   for LING in $LING_DOC
     94   do
     95     echo "" >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright
     96     echo "-------------------------------------------------------------" \
     97       >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright
     98     echo "" >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright
     99 
    100     COPY_MESSAGES_DIR=/usr/share/gnome/help/copyright/$LING
    101     gzcat $COPY_MESSAGES_DIR/$COPY_MESSAGES \
    102       >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright
    103   done
    104 }
    105 
    106 _get_15lang_copyright ()
    107 {
    108   for LING in cs de es fr hi hu it ja ko pl pt_BR ru sv zh_CN zh_HK zh_TW
    109   do
    110     TAG=`echo $LING | sed -e "s/_//"`
    111 
    112     rm -f $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright
    113     echo "Creating $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright ..."
    114     cat $COPY_ORG_DIR/${COPY_ORG}.copyright \
    115       >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright
    116     echo "" >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright
    117     echo "-------------------------------------------------------------" \
    118       >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright
    119     echo "" >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright
    120     COPY_MESSAGES_DIR=/usr/share/locale/$LING/LC_MESSAGES
    121     gzcat $COPY_MESSAGES_DIR/$COPY_MESSAGES \
    122       >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright
    123 
    124     rm -f $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright
    125     echo "Creating $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright ..."
    126     cat $COPY_ORG_DIR/${COPY_ORG}.copyright \
    127       >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright
    128     echo "" >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright
    129     echo "-------------------------------------------------------------" \
    130       >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright
    131     echo "" >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright
    132     COPY_MESSAGES_DIR=/usr/share/gnome/help/copyright/$LING
    133     gzcat $COPY_MESSAGES_DIR/$COPY_MESSAGES \
    134       >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright
    135   done
    136 }
    137 
    138 create_GNOME_copyright ()
    139 {
    140   COPY_ORG=SUNWgnome-l10nmessages
    141   COPY_ORG_DIR=$HOME/packages/spec-files/copyright
    142   COPY_MESSAGES=COPYING.gnome.gz
    143   _get_15lang_copyright
    144   
    145   TAG=rtl
    146   LING_MESSAGE="ar az az_IR fa he ur ur_PK yi"
    147   LING_DOC="ar"
    148   _get_group_copyright
    149   
    150   TAG=extra
    151   LING_MESSAGE="bg ca ca@valencia da el et fi hr is lt lv mk mt nb nl nn no pt pt_PT ro sk sl sq sr sr@Latn sr@ije sr@latin ta te th tr"
    152   LING_DOC="bg ca da el fi mk nl ru sr"
    153   _get_group_copyright
    154   
    155   TAG=noinst
    156   LING_MESSAGE="aa af am ang as be be@latin bn bn_IN br bs byn cy dv dz eo eu fo fur ga gez gl gn gu gv haw hy ia id io iu ka kk kl km kn kok ku kw ky li lo mai mg mi ml mn mr ms my_MM nds@NFE ne nso oc om or pa ps rw sa si sid so sw syr tg ti tig tk tl tt ug uk uz uz@cyrillic ve vi wa wal wo xh yo zu"
    157   LING_DOC="eu oc pa uk vi"
    158   _get_group_copyright
    159 }
    160 
    161 create_desktop_other_copyright ()
    162 {
    163   COPY_ORG=SUNWdesktop-other-l10n
    164   COPY_ORG_DIR=$HOME/packages/spec-files-other/copyright
    165   COPY_MESSAGES=COPYING.desktop-other.gz
    166   _get_15lang_copyright
    167   
    168   TAG=rtl
    169   LING_MESSAGE="ar he"
    170   LING_DOC="ar"
    171   _get_group_copyright
    172   
    173   TAG=extra
    174   LING_MESSAGE="bg ca da el et fi hr lt mk nb nl pt ro sk sl sr ta tr wo"
    175   LING_DOC="bg ca da el fi mk nl ru sr"
    176   _get_group_copyright
    177   
    178   TAG=noinst
    179   LING_MESSAGE="af bn bs cy gl gu id ka km lo mr pa uk vi xh zu"
    180   LING_DOC="eu oc pa uk vi"
    181   _get_group_copyright
    182 }
    183 
    184 _merge_base_copyright ()
    185 {
    186   BASE_COPYRIGHTS_WZ_L10N=
    187 
    188   for COPYRIGHT in $BASE_ALL_COPYRIGHTS
    189   do
    190     SPEC=`basename $COPYRIGHT .copyright`.spec
    191     if [ ! -f $SPEC_DIR/$SPEC ] ; then
    192       continue;
    193     fi
    194     HAS_L10N_PKG=`grep "%package l10n" $SPEC_DIR/$SPEC`
    195     if [ x"$HAS_L10N_PKG" = x ] ; then
    196       continue;
    197     fi
    198     BASE_COPYRIGHTS_WZ_L10N="$BASE_COPYRIGHTS_WZ_L10N $COPYRIGHT"
    199   done
    200 
    201   if [ "$COPY_ORG" = "SUNWtgnome-l10n-ui" ] ; then
    202     TAGS="NONE"
    203   else
    204     TAGS="cs de es fr hi hu it ja ko pl ptBR ru sv zhCN zhHK zhTW rtl extra noinst"
    205   fi
    206 
    207   for TAG in $TAGS
    208   do
    209     if [ "$TAG" = "NONE" ] ; then
    210       L10N_COPYRIGHT_FILE_GROUP=`ls $COPY_ORG_DIR/${COPY_ORG}.copyright`
    211     else
    212       L10N_COPYRIGHT_FILE_GROUP=`ls $COPY_ORG_DIR/${COPY_ORG}*-${TAG}.copyright`
    213     fi
    214 
    215     if [ x"$L10N_COPYRIGHT_FILE_GROUP" = x ] ; then
    216       continue
    217     fi
    218 
    219     for L10N_COPYRIGHT_FILE in $L10N_COPYRIGHT_FILE_GROUP
    220     do
    221       echo "Merging $L10N_COPYRIGHT_FILE ..."
    222       for COPYRIGHT in $BASE_COPYRIGHTS_WZ_L10N
    223       do
    224         PKG=`basename $COPYRIGHT .copyright`
    225 
    226         echo "" >> $L10N_COPYRIGHT_FILE
    227         echo "-------------------------------------------------------------" \
    228           >> $L10N_COPYRIGHT_FILE
    229         echo "Copyright for $PKG" >> $L10N_COPYRIGHT_FILE
    230         echo "" >> $L10N_COPYRIGHT_FILE
    231         cat $COPY_ORG_DIR/$COPYRIGHT >> $L10N_COPYRIGHT_FILE
    232       done
    233     done
    234   done
    235 }
    236 
    237 merge_GNOME_base_copyright ()
    238 {
    239   COPY_ORG=SUNWgnome-l10nmessages
    240   COPY_ORG_DIR=$HOME/packages/spec-files/copyright
    241   SPEC_DIR=`dirname $COPY_ORG_DIR`
    242   BASE_ALL_COPYRIGHTS=`(cd $COPY_ORG_DIR; ls *.copyright |\
    243     grep -v "SUNWacroread" |\
    244     grep -v "SUNWfirefox-" |\
    245     grep -v "SUNWmozilla-" |\
    246     grep -v "SUNWmyspell-dictionary" |\
    247     grep -v "SUNWtgnome-" |\
    248     grep -v "SUNWthunderbird-" |\
    249     grep -v "SUNWrealplayer" |\
    250     grep -v "$COPY_ORG" )`
    251 
    252   _merge_base_copyright
    253 }
    254 
    255 merge_TJDS_base_copyright ()
    256 {
    257   COPY_ORG=SUNWtgnome-l10n-ui
    258   COPY_ORG_DIR=$HOME/packages/spec-files/copyright
    259   SPEC_DIR=`dirname $COPY_ORG_DIR`
    260   BASE_ALL_COPYRIGHTS=`(cd $COPY_ORG_DIR; ls SUNWtgnome-*.copyright |\
    261     grep -v "$COPY_ORG" )`
    262 
    263   _merge_base_copyright
    264 }
    265 
    266 merge_desktop_other_base_copyright ()
    267 {
    268   COPY_ORG=SUNWdesktop-other-l10n
    269   COPY_ORG_DIR=$HOME/packages/spec-files-other/copyright
    270   SPEC_DIR=$HOME/packages/spec-files-other/core
    271   BASE_ALL_COPYRIGHTS=`(cd $COPY_ORG_DIR; ls *.copyright |\
    272     grep -v "$COPY_ORG" )`
    273 
    274   _merge_base_copyright
    275 }
    276 
    277 main ()
    278 {
    279   init $@
    280 
    281   if [ $TYPE -eq $TYPE_DESKTOP_OTHER ] ; then
    282     if [ ! -d $HOME/packages/spec-files-other ] ; then
    283       echo "spec-files build tree is not dir: $HOME/packages/spec-files-other" 1>&2
    284       exit 1
    285     fi
    286   else
    287     if [ ! -d $HOME/packages/spec-files ] ; then
    288       echo "spec-files build tree is not dir: $HOME/packages/spec-files" 1>&2
    289       exit 1
    290     fi
    291   fi
    292 
    293   if [ $CREATE_COPYRIGHT -ne 0 -a $TYPE -eq $TYPE_GNOME ] ; then
    294     create_GNOME_copyright
    295   elif [ $CREATE_COPYRIGHT -ne 0 -a $TYPE -eq $TYPE_DESKTOP_OTHER ] ; then
    296     IS_X86=`uname -p | grep i386`
    297 
    298     if [ x"$IS_X86" = x ] ; then
    299       echo "Please run this script on x86 for desktop-other" 1>&2
    300       exit 1
    301     fi
    302     create_desktop_other_copyright
    303   fi
    304   if [ $MERGE_BASE_COPYRIGHT -ne 0 -a $TYPE -eq $TYPE_GNOME ] ; then
    305     merge_GNOME_base_copyright
    306   elif [ $MERGE_BASE_COPYRIGHT -ne 0 -a $TYPE -eq $TYPE_TJDS ] ; then
    307     merge_TJDS_base_copyright
    308   elif [ $MERGE_BASE_COPYRIGHT -ne 0 -a $TYPE -eq $TYPE_DESKTOP_OTHER ] ; then
    309     merge_desktop_other_base_copyright
    310   fi
    311 }
    312 
    313 main $@
    314