27 lines
598 B
Bash
27 lines
598 B
Bash
|
#!/bin/sh
|
||
|
# SPDX-License-Identifier: GPL-2.0
|
||
|
#
|
||
|
# Usage: $ ./rustc-version.sh rustc
|
||
|
#
|
||
|
# Print the Rust compiler version in a 6 or 7-digit form.
|
||
|
|
||
|
# Convert the version string x.y.z to a canonical up-to-7-digits form.
|
||
|
#
|
||
|
# Note that this function uses one more digit (compared to other
|
||
|
# instances in other version scripts) to give a bit more space to
|
||
|
# `rustc` since it will reach 1.100.0 in late 2026.
|
||
|
get_canonical_version()
|
||
|
{
|
||
|
IFS=.
|
||
|
set -- $1
|
||
|
echo $((100000 * $1 + 100 * $2 + $3))
|
||
|
}
|
||
|
|
||
|
if output=$("$@" --version 2>/dev/null); then
|
||
|
set -- $output
|
||
|
get_canonical_version $2
|
||
|
else
|
||
|
echo 0
|
||
|
exit 1
|
||
|
fi
|