[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-i18n-ca
Subject:    [kdecat] =?utf-8?q?Arranjar_les_cap=C3=A7aleres_dels_=2Epo?=
From:       Antoni Bella =?ISO-8859-1?Q?P=E9rez?= <antonibella5 () orange ! es>
Date:       2011-12-14 4:04:56
Message-ID: 32302606.ekjdumKzAZ () alba
[Download RAW message or body]

Hola llista

  Fa un temps en Josep Ma. em demanava que anés establint als nous fitxers les 
capçaleres de Copyright consensuades a la llista. La meva resposta va ser com 
fer-ho automàticament?

  La meva falta de coneixement en perl fa que no pugui fer un script per al 
Lokalize -el qual seria ideal- però sí que m'he atrevit amb bash i des de la 
consola executar aquest script una vegada i una altra fins que no doni error.

  Els arguments són "prova|edita", tot i que només funciona fins que troba una 
entrada irresoluble. :(

  La qüestió és que funciona.

  Vet aquí la pregunta: Tinc permís per canviar la capçalera a tota la 
documentació?

  Atentament
  Toni
["c_cap.sh" (c_cap.sh)]

#!/bin/sh

DIR="$HOME/Documents/Treball/trunk/l10n-kde4/ca/docmessages"
SED_N='20'
case $1 in
  prova)
    comm_mod() { head -n $SED_N $FILE | sed -e \"$1\" $FILE; }
  ;;
  edita)
    comm_mod() { head -n $SED_N $FILE | sed --in-place -e "$1" $FILE; }
  ;;
  *)
    echo "$0 prova|edita"
    exit 0
  ;;
esac

mod_fitxer() {
    error_cap() { echo "ERROR: $DIR/$dir"; exit 1; }

    r1() { FILE1=$(echo $REGLA | cut -f 4 -d' ' | sed -r s,\.po,,)
       comm_mod "1 s/$REGLA/\# Translation of $FILE1.po to Catalan/g"
       PIV="\"Project-Id-Version: $FILE1\\\n\""
     }
    r2() {
       comm_mod "2 s/$REGLA/# Copyright (C) $ANYDEF This_file_is_part_of_KDE$1/g"
     }
    r3() { comm_mod "3 s/$REGLA/# This file is distributed under the license LGPL \
version 2 or later.$1/g"  }

    file_c() { head -n 4 $FILE; }
echo "##0#########"
ANYS=$(grep "# .* <.*@.*>, .*\." $1 | sed -e "s/# .* <.*@.*>,//g" -e "s/,//g" -e \
"s/,//g" -e "s/,//g" -e "s/\.//g") ANY_OLD='3000'
ANY_NEW='0'
for any in $(echo $ANYS)
  do
    test $any -lt $ANY_OLD && export ANY_OLD="$any"
    test $any -gt $ANY_NEW && export ANY_NEW="$any"
  done
test $ANY_OLD -eq $ANY_NEW && export ANYDEF="$ANY_OLD"
test $ANY_OLD -ne $ANY_NEW && export ANYDEF="$ANY_OLD-$ANY_NEW"
echo "$dir/$file_edit: $ANYDEF"
echo "##1#########"
    REGLA=$(file_c | head -n 1)
    if   [ $(echo $REGLA | cut -f 2 -d' ') = Translation ]; then
        r1
    elif [ $(echo $REGLA | cut -f 2 -d' ') = translation ]; then
        r1
      else
        error_cap
    fi
echo "##2#########"
    REGLA=$(file_c | head -n 2 | tail -n 1)
    if   [ $(echo $REGLA | cut -f 2 -d' ') = Copyright ]; then
        r2
    elif [ $(echo $REGLA | cut -f 2 -d' ') = "#" ]; then
	r2 "\n#"
      else
        error_cap
    fi
echo "##3#########"
    REGLA=$(file_c | head -n 3 | tail -n 1)
    test "$(echo $REGLA)" = "$(echo $REGLA | grep "# .* <.*@.*>, .*\.")" && \
	  comm_mod "3 s/$REGLA/#\n$REGLA/g"
    if   [ $(echo $REGLA | cut -f 5 -d' ') = distributed ]; then
        r3
    elif   [ $(echo $REGLA) = "#" ]; then
        r3 "\n#"
      else
        error_cap
    fi
echo "##4#########"
    comm_mod "s/\"Project-Id-Version: (.*)\\\n/$PIV/g"
  }

cd $DIR
for dir in $(find * -maxdepth 0 -type d)
  do
    cd $dir
    for file_edit in $(find * -maxdepth 0 -type f)
      do
	FILE=$DIR/$dir/$file_edit
	mod_fitxer $FILE
      done
exit 0
    cd ..
  done

exit 0



_______________________________________________
kde-i18n-ca mailing list
kde-i18n-ca@kde.org
https://mail.kde.org/mailman/listinfo/kde-i18n-ca


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic