Предыстория:
Ковырял я в своей локалке DC и вылезла задача - открыть через DC инфу линухового сервера. На этом же сервере был DC-хаб.
В dctc потыкался без особого успеха - не давал скачать ничего кроме файллиста с себя. Случайно надыбал на свежий проект microdc.
Всё хорошо, но файллист в koi8 мало кого устраивает.
Вариантов было 2 :
- открыть локальный доступ по самбе и ей конвертить имена файлов и папок в 1251
- сделать симлинки с перекодированием. Естественно не руками
Серверу итак несладко было, поэтому вариант с самбой только как крайний случай. А ещё как раз с локалкой проблемы - линка на инет нет.
Вот и решил я делать симлинки. Почему-то делать скрипт меня заломало - выглядеть будет короче, но думать надо больше :). Вот и написал на C.
По крайней мере работать будет быстрее скрипта
Код:
Не хотелось заморачиваться с подтягиванием кодировок из строки запуска, выдачей параметров запуска при запуске без них и прочими нужными вещами.
И не заморачивался
Компилимgcc -O3 ./lnrecode.c -o./lnrecode
Запускаем./lnrecode /usr/local /tmp/local
Это создаст нам в /tmp/local зеркало папок и файлов /usr/local с перекодировкой имён файлов и папок из koi8-r в cp1251.
На /tmp/local я и натравливаю microdc, если хочу открыть /usr/local.
microdc я запускал на сервере через screen -dmS microdc microdc
предварительно создав конфиг