Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
SHTOOL-PLATFORM.TMP(1)	     GNU Portable Shell Tool	  SHTOOL-PLATFORM.TMP(1)

NAME
     shtool platform - GNU shtool Unix platform identification

SYNOPSIS
     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]

DESCRIPTION
     shtool platform is a flexible Unix platform identification program.  It
     distinguishes a platform according to its hardware architecture and operat-
     ing system. For both there is a class, product and technology identifica-
     tion. 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 vari-
	 ous 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 technology

	 The 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 informa-
	 tion 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 infor-
	 mation strings. By default it is ""/"". It is especially used to con-
	 catenate 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, -v or -c according 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 build and is equal
	     to ""-F '"%<at"-unknown-%<st>' -L -S '' -C '+'>" and results in
	     outputs like ""i686-unknown-freebsd4.9"" and ""i586-un-
	     known-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 ""De-
	     bian/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.

EXAMPLE
     The following real-life use cases are known:

     OpenPKG build-time decisions
	  $ platform -c -L -S "" -C "+" -F "%at-%st"
	  $ platform -c -L -S "" -C "+" -F "%ac-%sc"

     OpenPKG binary 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) informa-
     tion and so usually can be identified sufficiently, although the identifi-
     cation might be not as precise as possible.

HISTORY
     shtool platform was implemented in September 2003 by Ralf S.  Engelschall
     for use in the OSSP and OpenPKG projects. It was prompted by the need in
     OpenPKG to have both product (for RPM filenames) and technology (for
     build-time decisions) identifiers for the Unix platforms, OpenPKG packages
     are maintained for. It was inspired by the GNU config.guess and the old GNU
     shtool guessos command.

     The major difference to GNU config.guess is that shtool platform does not
     use a vendor identification (cannot be determined most of the time and is
     not used at all in all projects I've ever seen) and is a lot more flexible
     (class, product and technology identifications combined with verbose, regu-
     lar and concise outputs). The drawback of shtool platform is that it
     (still) knows less particular platforms, although the generic platform
     identification is sufficient enough most of the time.

SEE ALSO
     uname(3), GNU config.guess.

18-Jul-2008			  shtool 2.0.8		  SHTOOL-PLATFORM.TMP(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=shtool-platform&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help