#!/usr/bin/perl

=begin metadata

Name: arch
Description: display system machine type
Author: Theo Van Dinter, felicity@kluge.net
License:

=end metadata

=cut

use strict;
use POSIX qw(uname);

# system ... (uname -s)
# arch   ... (uname -m)
my ($system, $arch) = (uname())[0,4];

# sun3.* -> sun3, sun4.* -> sun4, etc. SunOS hooey.
# looks like `uname -m` eq `arch -k` on suns ...
unless ( $ARGV[0] =~ /^-k$/i ) {
	$arch =~ s/^(sun\d+).*$/$1/;
}

$arch = "$system.$arch" if ( $system eq "OpenBSD" ); # OpenBSD hooey.
print "$arch\n";

=head1 NAME

arch - display system machine type

=head1 SYNOPSIS

B<arch> [ C<-k> ]

=head1 DESCRIPTION

arch displays the current system architecture type.  It tends to be
equivilent to C<uname -m> (except on SunOS platforms, see B<NOTES>).

=head1 OPTIONS

C<-k>	Displays kernel architecture on SunOS platforms.

=head1 NOTES

SunOS tends to differentiate between kernel and system architecture.  I<uname
-m> will return kernel architecture.  System architecture is the same
information except it doesn't include the trailing alpha chars.  I.e.:
'sun4m' (kernel) = 'sun4' (system), 'sun3x' = 'sun3', etc, etc.

=head1 HISTORY

Perl version rewritten for the Perl Power Tools project from the
description of the arch program in OpenBSD.

=head1 AUTHOR

Theo Van Dinter (felicity@kluge.net)

=head1 SEE ALSO

uname(1) uname(2) machine(1)