Инструмент сборки BlackBerry WebWorks SDK для планшетных ПК создает архив, содержащий файлы и файл MANIFEST.MF с записью для каждого файла и дайджестом SHA512 в кодировке base64. Тем не менее, есть ошибка, что слишком много файлов в сборке приведет к сбою сборки. Я пытаюсь выяснить, как генерировать эту же информацию самостоятельно.
Пример ниже взят из MANIFEST.MF
и содержит имя файла и дайджест. Однако вариант base64 использует _
вместо /
и -
вместо +
и не имеет конечного ==
для заполнения.
Archive-Asset-Name: air/XX/IMG_0999.jpg
Archive-Asset-SHA-512-Digest: YI_KXWjpJwwsi5MDQPeBQc9SVi-bH6zYq5PgBD3jQiqHu-r-5Hv8A0yh_y5j2T9MpYZ5TVMW4JXHSXNYmpV1tA
Я использую Windows 7, но у меня установлен GIT, поэтому я использую MINGW32 в качестве оболочки bash. Я нашел эту комбинацию команд openssl и tr, но она кажется чем-то вроде клуджа.
openssl dgst -sha512 -binary IMG_0999.gif | openssl enc -base64 | tr '+' '-' | tr '/' '_' | tr -d '=' | tr -d '\n'
Есть ли лучший способ создать этот дайджест?
В конце концов, мне придется сделать все изображения в дереве каталогов. Я надеялся на решение сценария вместо того, чтобы писать программу. Второй вопрос - как создать этот синтаксис манифеста для всех файлов в каталоге (рекурсивно). Будет ли это сценарий оболочки bash, включающий приведенную выше команду? Любые указатели здесь приветствуются, так как я раньше не писал сценарий оболочки.