The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

ru-utf8 - утилита подмены файлов в национальных кодировках на файлы в utf-8.

VERSION

Version 0.06

SYNOPSIS

    ru-utf8 [-h] [--man] [<files> ...] [--ext exts] [--in-branch] [--in-dir dirs] [--command <command> | --script <script>]

DESCRIPTION

Утилита переводит файлы во временные в кодировке utf-8 (в /tmp) и после выполнения команды и их изменения переписывает обратно в определённой кодировке.

Обработать файлы командой shell:

        $ ru-utf8 -c 'echo $f $o $x $e'
        $ ru-utf8 -c 'perltidy $f -st > $o'
        
        $ ru-utf8 -o -c 'echo $f1 $o1 $x1 $e1 -- $f2 $o2 $x2 $e2'
        

Обработать файлы скриптом perl:

        $ ru-utf8 -s 'print "$f $o $x $e $unicode"'
        $ ru-utf8 -o -s 'print "@f @o @x @e"'

Есть 4 основные режима работы:

        # Обработать все изменённые, но ещё не закомиченные файлы:
        $ ru-utf8
        
        # Обработать изменённые и закомиченные файлы в ветке (branch-е):
        $ ru-utf8 --in-branch

        # Обработать файлы в директориях:
        $ ru-utf8 --in-dir .,/tmp/mydir

        # Обработать указанные файлы:
        $ ru-utf8 file1 /root/file2
        

С помощью опции -e (--ext) можно указать расширения файлов для форматирования (по умолчанию это pm,pl,plx,t):

        $ ru-utf8 -e pm,t
        

А для файлов, которые расширений не имеют, можно указать список интерпретаторов, указываемых в первой строке скрипта (#!/usr/bin/env perl):

        $ ru-utf8 -i perl,perl5
        

Так же можно указать кодировки и порядок в котором они будут проверяться:

        $ ru-utf8 -n cp1251,utf-8

`ru-utf8` возвращает максимальный код из возвращённых при запуске команды над файлами.

OPTIONS

-h, --help

Показать помощь и выйти.

--man

Распечатать мануал и завершиться.

-e exts, --ext exts

Список расширений через запятую.

По умолчанию: pm,pl,plx,t.

Пустая строка обозначает любые расширения.

-i interpreters, --interpreters interpreters

Список интерпретаторов через запятую.

По умолчанию: perl,perl5.

Пустая строка отменяет файлы без расширений.

-n encodings, --encodings encodings

Список кодировок через запятую.

По умолчанию берётся из переменной окружения RU-ENCODINGS, а если она пуста, равняется: utf-8,cp1251,koi8-r.

-b, --in-branch

Форматировать изменённые и закомиченные файлы в ветке (branch-е).

-d dirs, --in-dir dirs

Форматировать изменённые и закомиченные файлы в директориях. Директории через запятую.

command, --command command

Команда.

Обязательный параметр, если параметр -s не указан.

-s script, --script script

Код perl.

Обязательный параметр, если параметр -c не указан.

-o, --overall

Указывает, что команда одна для всех файлов, а не для каждого по отдельности.

При этом обращение к файлам происходит как в шелле: $1, $2...

Например:

        ru-utf8 file1 file2 -c 'cat $1 $2'

ARGS

files...

Файлы или директории с файлами, которые нужно отформатировать.

LICENSE

GPLv3

AUTHOR

Yaroslav O. Kosmina <darviarush@mail.ru>