shtool-platform1
Gnu shtool unix platform identification
Usage
shtool platform
[{-F | --format
format}]
[{-S | --sep
string}]
[{-C | --conc
string}]
[{-L | --lower}]
[{-U | --upper}]
[{-v | --verbose}]
[{-c | --concise}]
[{-n | --newline}]
[{-d | --debug}]
[{-t | --type
type}]
[{-n | --newline}]
[{-d | --debug}]
Overview
shtool platform is a flexible Unix platform identification program. It distinguishes a platform according to its hardware architecture and operating system. For both there is a class, product and technology identification. For each of those six identifications, there is a verbose, regular and concise version.
This leads to eighteen (2x3x3) available identification strings for each platform, from which usually 2 are chosen in a particular situation. This is done by assembling the platform identification string using a format string containing one or more identification constructs of the forms ""%[xx]"" (verbose), ""%{xx}"" (regular) and ""%<xx>"" (concise).
Options
The following command line options are available.
-
-F, --format format -
This option controls the output formatting of this program. It is a plain-text string with the "
"%"xx" constructs which expand to the various platform information strings. ""%{"xx"}"" is the canonical regular version of the information. ""%["xx"]"" is the verbose version of the information. ""%<"xx">"" is the concise version of the information. In total, the following constructs are available for expansion:%[ac] verbose hardware architecture class%{ac} regular hardware architecture class%<ac> concise hardware architecture class%[ap] verbose hardware architecture product%{ap} regular hardware architecture product%<ap> concise hardware architecture product%[at] verbose hardware architecture technology%{at} regular hardware architecture technology%<at> concise hardware architecture technology%[sc] verbose operating system class%{sc} regular operating system class%<sc> concise operating system class%[sp] verbose operating system product%{sp} regular operating system product%<sp> concise operating system product%[st] verbose operating system technology%{st} regular operating system technology%<st> concise operating system technologyThe default format string is "
"%{sp} (%{ap})"", providing the regular operating system and hardware architecture product information.
-
-S, --sep string -
This option sets the word separation string for the platform information strings. By default it is "
" "" (whitespace). It is especially used for separating the operating system name and the operating system version.
-
-C, --conc string -
This option sets the word concatenation string for the platform information strings. By default it is "
"/"". It is especially used to concatenate multiple parts in operating system name and version parts.
-
-L, --lower -
This options enforces conversion of the output to all lower case.
-
-U, --upper -
This options enforces conversion of the output to all upper case.
-
-v, --verbose -
This option enforces verbose versions of all expansion constructs in format string of option
-F. It is equal to specifying all expansion constructs as ""%["xx"]"".
-
-c, --concise -
This option enforces concise versions of all expansion constructs in format string of option
-F. It is equal to specifying all expansion constructs as ""%<"xx">"".
-
-n, --no-newline -
This option omits the usual trailing newline character in the output.
-
-t, --type type -
This option is a meta option which internally sets options
-F,-S,-C,-L,-U,-vor-caccording to TYPE. It can be used to easily specify various commonly known outputs. The following TYPEs are available:binary-
Binary Package Id (OpenPKG RPM). This is equal to "
"-F '%<ap"-%<sp>' -L -S '' -C '+'>" and results in outputs like ""ix86-freebsd4.9"" and ""ix86-debian3.0"".
build-
Build-Time Checking (OpenPKG RPM). This is equal to "
"-F '%<at"-%<st>' -L -S '' -C '+'>" and results in outputs like ""i686-freebsd4.9"" and ""i586-linux2.4"".
gnu-
GNU config.guess Style Id. This is similar to
buildand is equal to ""-F '"%<at"-unknown-%<st>' -L -S '' -C '+'>" and results in outputs like ""i686-unknown-freebsd4.9"" and ""i586-unknown-linux2.4"".
web-
HTTP Server Header Id. This is equal to "
"-F '"%<sp"-%<ac>' -S '/' -C '+'>" and results in outputs like ""FreeBSD/4.9-iX86"" and ""Debian/3.0-iX86"".
summary-
Human Readable Verbose Summary Information. This is equal to "
"-F'Class: %[sc] (%[ac])\nProduct: %[sp] (%[ap])\nTechnology: %[st](%[at])' -S ' ' -C '/'"" and results in outputs like:Class: 4.4BSD (iX86)Product: FreeBSD 4.9-RC (iX86)Technology: FreeBSD 4.9-RC (i686)and
Class: LSB (iX86)Product: Debian GNU/Linux 3.0 (iX86)Technology: GNU/Linux 2.2/2.4 (i686)
all-in-one-
All-In-One Full-Table Information. This just outputs really all 2x2x3 identification strings as a table.
-
-d, --debug -
This option enables some internal debugging messages.
-
-V, --version -
This option outputs the version information of shtool platform only.
-
-h, --help -
This option outputs the usage information of shtool platform only.
Examples
The following real-life use cases are known:
OpenPKGbuild-time decisions-
$ platform -c -L -S "" -C "+" -F "%at-%st"$ platform -c -L -S "" -C "+" -F "%ac-%sc"
OpenPKGbinary RPM packages-
$ platform -c -L -S "" -C "+" -F "%ap-%sp"
- README files
-
$ platform -v -F "%sp (%ap)"$ platform -v -F "%sc (%ac)"
- Debugging
-
$ platform --type=all-in-one
Support
shtool platform currently knows the following particular Unix platforms in detail: FreeBSD, NetBSD, OpenBSD, Linux, Sun Solaris, SCO UnixWare, QNX Neutrino, SGI IRIX, HP HP-UX, HP Tru64, IBM AIX and Apple Mac OS X Darwin.
All other Unix platforms are recognized through generic uname(1) information and so usually can be identified sufficiently, although the identification might be not as precise as possible.
Releases
11 releases since Debian 3.1 (Sarge); the text changed 5 times.