Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 03 May 2008 10:47:56 +0200
From:      Gabor PALI <pgj@FreeBSD.org>
To:        doc@FreeBSD.org
Subject:   A Script for Translators: mfen
Message-ID:  <481C26BC.2090701@FreeBSD.org>
In-Reply-To: <20080429225143.GA74318@dshield.infosecurityresearch.org>
References:  <20080429225143.GA74318@dshield.infosecurityresearch.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------050308060705000209090302
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Hello,

I wrote a small shell script to check which files should be merged from
English or to check incorrect revision references in the translations.

I found it very useful in my work, so I think it should be shared with
the members of the FreeBSD Documentation Project. I did not see anything
like this in the repositories, but you can throw me rocks if somebody
has already done this before :)

I generalized and prepared it a bit and it should work for any language
in the doc/www tree. The format of the output is tuned to be comfortable
for generating commit messages, however this feature should be enhanced
in the future. It contains a few "awk(1)ward" tricks, so your
suggestions and comments are more then welcome.

Best regards,
-pgj


--------------050308060705000209090302
Content-Type: text/plain;
 name="mfen"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="mfen"

#!/bin/sh

# mfen

# Compare revisions of documentation of different languages.
# It is mainly used to check which files should be merged from
# or have incorrent revision information.

# Here is how to use this:
#
# $ mfen en_US.ISO8859-1 hu_HU.ISO8859-2

# Copyright 2008 The FreeBSD Hungarian Documentation Project
# Created by: PALI, Gabor <pgj@FreeBSD.org>


PATH=/bin:/usr/bin:/usr/sbin

CVS_ID_TAG=FreeBSD

traverse() {
  for j in `ls $2`; do
    if [ -d $2/$j ]; then
      traverse $1/$j $2/$j $3$j/
    else
      TR=`grep Original\ Revision $2/$j`
      if [ -n "$TR" ]; then
        if [ -f "$1/$j" ]; then
          LG=`grep "[$]$CVS_ID_TAG:" $1/$j`
          if [ -n "$LG" ]; then
            FROM=`echo $TR | awk '{print substr($0, index($0, "1.") + 2, 6)}' | awk '{print $1}'`
            TO=`echo $LG | awk '{print substr($0, index($0, "1.") + 2, 6)}' | awk '{print $1}'`
            if [ $FROM -lt $TO ]; then
			  printf "1.%-4d --> 1.%-4d  %s\n" $FROM $TO $3$j
            elif [ $FROM -gt $TO ]; then
			  printf "REVISION ERROR     %s\n" $3$j
            fi
          fi
        else
		  printf "NOT FOUND          %s\n" $3$j
        fi
      fi
    fi
  done
}

if [ -n "$1" ] && [ -n "$2" ]; then
  traverse $1 $2 ""
else
  echo USAGE: $0 "directory1" "directory2"
fi

--------------050308060705000209090302--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?481C26BC.2090701>