Не проходят тесты, если пользователь системы задан не латиницей
Если пользователь системы задан кириллицей, то некоторые тесты падают. Причина - кодировка генерируемых батников. Вот здесь: https://github.com/EvilBeaver/oscript-library/blob/develop/src/gitsync/tests/git-sync-test.os#L475 задается вин-кодировка. Батник имя пользователя превращает в крякозябры и ес-но ничего не выполняется. Если поменять на 866, то все отрабатывает корректно. Но тогда и выходные логи формируются в дос-кодировке.
Также похожая проблема наблюдается в других классах библиотеки. Нужно внимательно все просмотреть.
Как вариант, предлагаю следующее:
- Добавить спец.метод для преобразования файла из 866 в вин1251, например, через Чтение и ЗаписьТекста.
- Тогда можно будет использовать штатный вывод в 866 в командных файлах.
- Далее вызов этого метода преобразования нужно вставить в метод ВывестиТекстФайла
- Проверить на всех скриптах библиотеки поиском по
1251илиchcp 1251
батники кроме как в gitsync нигде больше не генерируются, насколько я помню. исправление-то простое, сам батник писать в cp866 и вывод батника (который перенаправляется в файл) открывать в cp866 и читать. Все.
вывод батника (который перенаправляется в файл) открывать в cp866 и читать
такой вариант ребят вчера не устроил. Думаю оптимальным вариантом будет идея Артура
Я немного не в контексте, но почему нельзя просто жестко устанавливать utf-8 и соответственно 65001?
можно, но переписывать больше. В предлагаемом варианте просто надо в местах записи батника и чтения его выхлопа нужную кодировку проставить и все
@JohnyDeath
такой вариант ребят вчера не устроил.
А можно подробнее, что и где не устроило?
Чтения выхлопа нет. Там в файл все записывается, которые скорее всего далее используются в билд серверах, настройки которых не хочется менять.
@JohnyDeath в гитсинке всегда есть чтение выхлопа. Вполне возможно, оно сделано не в той кодировке
Собственно, вот оно:
https://github.com/EvilBeaver/oscript-library/blob/develop/src/gitsync/src/core/%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D1%8B/%D0%9C%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%B5%D1%80%D0%A1%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8.os#L1032
Этот метод часто используется для чтения выхлопа, а файл читается без указания кодировки
@EvilBeaver А еще есть аналогичный метод ВывестиТекстФайла который юзается для обработки других команд Гит :(
дублирование, тех.долг, понимаешь
Выполнял поиск по исходникам по ЗапуститьПриложение
И нашел еще:
Есть метод ПрочитатьФайл, который также юзается для чтения логов
Например, в config-storage.os в методе ВыгрузитьВерсиюКонфигурации
или в файле table-reader.os
Метод "ПрочитатьФайл", похоже,кандидат сюда: https://github.com/oscript-library/files-common
@EvilBeaver
https://github.com/oscript-library/files-common
опаньки, это интересно. когда добавил этот ресурс?
Там бы тоже небольшой ридми вставить, чтобы знать для чего вообще создан модуль