| | |
| | | function usage |
| | | { |
| | | [[ -n "$1" ]] && printf "ERROR: %s\n\n" "$1" |
| | | printf "Usage: perl-version-convert MODULE VERSION\n" >&2 |
| | | printf "Usage: perl-version-convert DISTRIBUTION VERSION\n" >&2 |
| | | [[ -n "$1" ]] && exit 1 |
| | | exit 0 |
| | | } |
| | |
| | | (($# == 1)) && usage "Missing VERSION to convert" |
| | | (($# > 2)) && usage "Too many arguments" |
| | | |
| | | MODULE="$1" |
| | | DISTRIBUTION="$1" |
| | | VERSION="$2" |
| | | |
| | | |
| | |
| | | function convert_version |
| | | { |
| | | typeset -n C=$1 |
| | | typeset MODULE=$2 |
| | | typeset DIST=$2 |
| | | typeset VERSION=$3 |
| | | |
| | | typeset -a VER |
| | |
| | | # be converted to 0.XX.YY, but it was already integrated as 0.XXYY, so |
| | | # we need to follow it for now. |
| | | # |
| | | [[ "$MODULE" == "Authen-PAM" && "${VERSION:0:2}" == "0." ]] && ((${#VERSION} == 4)) && VERSION=$((1${VERSION:2:2} - 100)) |
| | | [[ "$MODULE" == "Crypt-PBKDF2" && "${VERSION:0:2}" == "0." ]] && ((${#VERSION} == 8)) && VER[1]=$((1${VERSION:2:6} - 1000000)) && VERSION=${VERSION:0:1} |
| | | [[ "$MODULE" == "Email-Sender" && "${VERSION:0:2}" == "1." ]] && ((${#VERSION} == 8)) && VER[1]=${VERSION:2:1} && VER[2]=$((1${VERSION:3:5} - 100000)) && VERSION=${VERSION:0:1} |
| | | [[ "$MODULE" == "Email-Sender" && "${VERSION:0:2}" != "0." && "${VERSION:3:2}" == "00" ]] && ((${#VERSION} == 5)) && VER[1]=${VERSION:2:1} && VERSION=${VERSION:0:1} |
| | | [[ "$MODULE" == "Module-Build" ]] && ((${#VERSION} == 6)) && VER[1]=$((1${VERSION:2:4} - 10000)) && VERSION=${VERSION:0:1} |
| | | [[ "$MODULE" == "Mozilla-CA" ]] && ((${#VERSION} == 8)) && VER[1]=$((1${VERSION:4:2} - 100)) && VER[2]=$((1${VERSION:6:2} - 100)) && VERSION=${VERSION:0:4} |
| | | [[ "$MODULE" == "PkgConfig" && "${VERSION:4:3}" == "026" ]] && ((${#VERSION} == 7)) && VER[1]=$((1${VERSION:2:2} - 100)) && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Authen-PAM" && "${VERSION:0:2}" == "0." ]] && ((${#VERSION} == 4)) && VERSION=$((1${VERSION:2:2} - 100)) |
| | | [[ "$DIST" == "Crypt-PBKDF2" && "${VERSION:0:2}" == "0." ]] && ((${#VERSION} == 8)) && VER[1]=$((1${VERSION:2:6} - 1000000)) && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Email-Sender" && "${VERSION:0:2}" == "1." ]] && ((${#VERSION} == 8)) && VER[1]=${VERSION:2:1} && VER[2]=$((1${VERSION:3:5} - 100000)) && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Email-Sender" && "${VERSION:0:2}" != "0." && "${VERSION:3:2}" == "00" ]] && ((${#VERSION} == 5)) && VER[1]=${VERSION:2:1} && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Email-Sender" && "${VERSION:0:2}" != "0." ]] && ((${#VERSION} == 5)) && VER[1]=${VERSION:2:1} && VER[2]=$((1${VERSION:3:2} - 100)) && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Error" && "${VERSION:0:2}" == "0." ]] && ((${#VERSION} == 7)) && VER[2]=$((1${VERSION:4:3} - 1000)) && VERSION=${VERSION:0:4} |
| | | [[ "$DIST" == "Geography-Countries" ]] && ((${#VERSION} == 10)) && VER[1]=$((1${VERSION:4:2} - 100)) && VER[2]=$((1${VERSION:6:2} - 100)) && VER[3]=$((1${VERSION:8:2} - 100)) && VERSION=${VERSION:0:4} |
| | | [[ "$DIST" == "IPC-Run" ]] && ((${#VERSION} == 3)) && VERSION="${VERSION}0" |
| | | [[ "$DIST" == "IPC-Run" ]] && ((${#VERSION} == 10)) && VER[3]=$((1${VERSION:9:1} - 10)) && VER[2]=$((1${VERSION:6:2} - 100)) && VER[1]=$((1${VERSION:4:2} - 100)) && VERSION=${VERSION:0:4} |
| | | [[ "$DIST" == "Log-Dispatch" && "${VERSION:0:2}" == "1." ]] && ((${#VERSION} == 3)) && VERSION=${VERSION}0 |
| | | [[ "$DIST" == "Log-Dispatch" && "${VERSION:0:2}" == "1." ]] && ((${#VERSION} == 5)) && VER[2]=$((1${VERSION:4:1} - 10)) && VERSION=${VERSION:0:4} |
| | | [[ "$DIST" == "Mail-AuthenticationResults" && "${VERSION:0:2}" == "1." ]] && ((${#VERSION} == 10)) && VER[1]=$((1${VERSION:2:4} - 10000)) && VER[2]=$((1${VERSION:6:2} - 100)) && VER[3]=$((1${VERSION:8:2} - 100)) && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Mail-AuthenticationResults" && "${VERSION:0:2}" == "1." ]] && ((${#VERSION} == 12)) && VER[1]=$((1${VERSION:2:4} - 10000)) && VER[2]=$((1${VERSION:6:2} - 100)) && VER[3]=$((1${VERSION:8:2} - 100)) && VER[4]=${VERSION:11:1} && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Mail-AuthenticationResults" && "${VERSION:0:2}" == "2." ]] && ((${#VERSION} == 10)) && VER[1]=$((1${VERSION:2:4} - 10000)) && VER[2]=$((1${VERSION:6:2} - 100)) && VER[3]=$((1${VERSION:8:2} - 100)) && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Mail-AuthenticationResults" && "${VERSION:0:2}" == "2." ]] && ((${#VERSION} == 12)) && VER[1]=$((1${VERSION:2:4} - 10000)) && VER[2]=$((1${VERSION:6:2} - 100)) && VER[3]=$((1${VERSION:8:2} - 100)) && VER[4]=${VERSION:11:1} && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Mail-DKIM" && "${VERSION:0:2}" == "1." ]] && ((${#VERSION} == 10)) && VER[1]=$((1${VERSION:2:4} - 10000)) && VER[2]=$((1${VERSION:6:2} - 100)) && VER[3]=$((1${VERSION:8:2} - 100)) && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Mail-DKIM" && "${VERSION:0:2}" == "1." ]] && ((${#VERSION} == 12)) && VER[1]=$((1${VERSION:2:4} - 10000)) && VER[2]=$((1${VERSION:6:2} - 100)) && VER[3]=$((1${VERSION:8:2} - 100)) && VER[4]=${VERSION:11:1} && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Mail-DMARC" && "${VERSION:1:1}" == "." ]] && ((${#VERSION} == 10)) && VER[1]=$((1${VERSION:2:4} - 10000)) && VER[2]=$((1${VERSION:6:2} - 100)) && VER[3]=$((1${VERSION:8:2} - 100)) && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Mail-DMARC" && "${VERSION:0:2}" == "0." ]] && ((${#VERSION} == 8)) && VER[1]=$((1${VERSION:2:2} - 100)) && VER[2]=$((1${VERSION:4:3} - 1000)) && VER[3]=$((1${VERSION:7:1} - 10)) && VERSION=${VERSION:0:1} |
| | | if [[ "$DIST" == "Math-Pari" && "$VERSION" != "${VERSION/.}" ]] ; then |
| | | V=${VERSION#*.} |
| | | VERSION=${VERSION%.$V} |
| | | [[ "${V%a}" != "$V" ]] && V="${V%a}0001" |
| | | [[ "${V%b}" != "$V" ]] && V="${V%b}0002" |
| | | ((${#V} / 2 * 2 != ${#V})) && V="${V}0" |
| | | i=1 |
| | | while ((${#V})) ; do |
| | | VER[$i]=$((1${V:0:2} - 100)) |
| | | V=${V:2} |
| | | i=$((i + 1)) |
| | | done |
| | | fi |
| | | [[ "$DIST" == "Mail-SPF" && "${VERSION:0:2}" == "3." ]] && ((${#VERSION} == 10)) && VER[1]=$((1${VERSION:2:4} - 10000)) && VER[2]=$((1${VERSION:6:2} - 100)) && VER[3]=$((1${VERSION:8:2} - 100)) && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Module-Build" ]] && ((${#VERSION} == 6)) && VER[1]=$((1${VERSION:2:4} - 10000)) && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Mozilla-CA" ]] && ((${#VERSION} == 8)) && VER[1]=$((1${VERSION:4:2} - 100)) && VER[2]=$((1${VERSION:6:2} - 100)) && VERSION=${VERSION:0:4} |
| | | [[ "$DIST" == "Net-DNS-Resolver-Mock" && "${VERSION:0:2}" == "1." ]] && ((${#VERSION} == 10)) && VER[1]=$((1${VERSION:2:4} - 10000)) && VER[2]=$((1${VERSION:6:2} - 100)) && VER[3]=$((1${VERSION:8:2} - 100)) && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Net-IMAP-Simple" ]] && ((${#VERSION} == 7)) && VER[3]=$((1${VERSION:6:1} - 10)) && VERSION=${VERSION:0:6} |
| | | [[ "$DIST" == "Perl-Critic" && "${VERSION:0:2}" == "0." ]] && ((${#VERSION} == 3)) && VERSION=${VERSION}0 |
| | | [[ "$DIST" == "Perl-Critic" && "${VERSION:0:2}" == "1." ]] && ((${#VERSION} == 4)) && VERSION=${VERSION}0 |
| | | [[ "$DIST" == "Perl-Tidy" ]] && ((${#VERSION} == 8)) && VER[1]=$((1${VERSION:4:2} - 100)) && VER[2]=$((1${VERSION:6:2} - 100)) && VERSION=${VERSION:0:4} |
| | | [[ "$DIST" == "PkgConfig" && "${VERSION:4:3}" == "026" ]] && ((${#VERSION} == 7)) && VER[1]=$((1${VERSION:2:2} - 100)) && VERSION=${VERSION:0:1} |
| | | [[ "$DIST" == "Proc-ProcessTable" && "${VERSION:0:2}" == "0." ]] && ((${#VERSION} == 5)) && VER[2]=$((1${VERSION:4:1} - 10)) && VERSION=${VERSION:0:4} |
| | | [[ "$DIST" == "Regexp-Common" ]] && ((${#VERSION} == 10)) && VER[1]=$((1${VERSION:4:2} - 100)) && VER[2]=$((1${VERSION:6:2} - 100)) && VER[3]=$((1${VERSION:8:2} - 100)) && VERSION=${VERSION:0:4} |
| | | |
| | | C= |
| | | VER[0]=${VERSION%%.*} |
| | |
| | | ?.??) VER[1]=${V:0:1} && VER[2]=$((1${V:2:2} - 100)) ;; |
| | | ??.?) VER[1]=$((1${V:0:2} - 100)) && VER[2]=${V:3:1} ;; |
| | | ????) VER[1]=$((1${V:0:2} - 100)) && VER[2]=$((1${V:2:2} - 100)) ;; |
| | | ??.??) VER[1]=$((1${V:0:2} - 100)) && VER[2]=$((1${V:3:2} - 100)) ;; |
| | | ???.?) VER[1]=$((1${V:0:3} - 1000)) && VER[2]=$((1${V:4:1} - 10)) ;; |
| | | ?.????) unsupported_version C $VERSION ; return ;; |
| | | ??.???) unsupported_version C $VERSION ; return ;; |
| | | ???.??) unsupported_version C $VERSION ; return ;; |
| | | ????.?) unsupported_version C $VERSION ; return ;; |
| | | ??????) VER[1]=$((1${V:0:3} - 1000)) ; VER[2]=$((1${V:3:3} - 1000)) ;; |
| | | ???.???)VER[1]=$((1${V:0:3} - 1000)) && VER[2]=$((1${V:4:3} - 1000)) ;; |
| | | *) unsupported_version C $VERSION ; return ;; |
| | | esac |
| | | fi |
| | |
| | | } |
| | | |
| | | |
| | | convert_version VER "${MODULE//::/-}" "$VERSION" |
| | | # For convenience we replace '::' by '-' in a case somebody calls this script |
| | | # with module name instead of distribution name. |
| | | convert_version VER "${DISTRIBUTION//::/-}" "$VERSION" |
| | | printf "%s\n" "$VER" |