| #!/bin/bash |
| |
| ############################################################################### |
| # |
| # Script to check output of some translated messages |
| # |
| # This should be useful for translators to check that the translated strings |
| # look good. This doesn't make xz print all possible strings, but it should |
| # cover most of the cases where mistakes can easily happen. |
| # |
| # Give the path and filename of the xz executable as an argument. If no |
| # arguments are given, this script uses ../src/xz/xz (relative to the |
| # location of this script). |
| # |
| # You may want to pipe the output of this script to less -S to view the |
| # tables printed by xz --list on a 80-column terminal. On the other hand, |
| # viewing the other messages may be better without -S. |
| # |
| ############################################################################### |
| # |
| # Author: Lasse Collin |
| # |
| # This file has been put into the public domain. |
| # You can do whatever you want with this file. |
| # |
| ############################################################################### |
| |
| set -e |
| |
| # If an argument was given, use it to set the location of the xz executable. |
| unset XZ |
| if [ -n "$1" ]; then |
| XZ=$1 |
| [ "x${XZ:0:1}" != "x/" ] && XZ="$PWD/$XZ" |
| fi |
| |
| # Locate top_srcdir and go there. |
| top_srcdir="$(cd -- "$(dirname -- "$0")" && cd .. && pwd)" |
| cd -- "$top_srcdir" |
| |
| # If XZ wasn't already set, use the default location. |
| XZ=${XZ-"$PWD/src/xz/xz"} |
| if [ "$(type -t "$XZ" || true)" != "file" ]; then |
| echo "Give the location of the xz executable as an argument" \ |
| "to this script." |
| exit 1 |
| fi |
| XZ=$(type -p -- "$XZ") |
| |
| # Print the xz version and locale information. |
| echo "$XZ --version" |
| "$XZ" --version |
| echo |
| if [ -d .git ] && type git > /dev/null 2>&1; then |
| echo "Source code version in $PWD:" |
| git describe --abbrev=4 |
| fi |
| echo |
| locale |
| echo |
| |
| # Make the test files directory the current directory. |
| cd tests/files |
| |
| # Put xz in PATH so that argv[0] stays short. |
| PATH=${XZ%/*}:$PATH |
| |
| # Some of the test commands are error messages and thus don't |
| # return successfully. |
| set +e |
| |
| for CMD in \ |
| "xz --foobarbaz" \ |
| "xz --memlimit=123abcd" \ |
| "xz --memlimit=40MiB -6 /dev/null" \ |
| "xz --memlimit=0 --info-memory" \ |
| "xz --memlimit-compress=1234MiB --memlimit-decompress=50MiB --info-memory" \ |
| "xz --verbose --verbose /dev/null | cat" \ |
| "xz --lzma2=foobarbaz" \ |
| "xz --lzma2=foobarbaz=abcd" \ |
| "xz --lzma2=mf=abcd" \ |
| "xz --lzma2=preset=foobarbaz" \ |
| "xz --lzma2=mf=bt4,nice=2" \ |
| "xz --lzma2=nice=50000" \ |
| "xz --help" \ |
| "xz --long-help" \ |
| "xz --list good-*lzma2*" \ |
| "xz --list good-1-check*" \ |
| "xz --list --verbose good-*lzma2*" \ |
| "xz --list --verbose good-1-check*" \ |
| "xz --list --verbose --verbose good-*lzma2*" \ |
| "xz --list --verbose --verbose good-1-check*" \ |
| "xz --list --verbose --verbose unsupported-check.xz" |
| do |
| echo "-----------------------------------------------------------" |
| echo |
| echo "\$ $CMD" |
| eval "$CMD" |
| echo |
| done 2>&1 |