aboutsummaryrefslogtreecommitdiff
path: root/bin/nato
blob: 6a049e19ebf9e4889897fb3df8615430e6489324 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/usr/bin/env perl

use v5.34;
use warnings;
use feature 'signatures';
no warnings ('experimental::signatures');
use Getopt::Std ();

sub usage($fh) {
	print $fh <<~'EOF';
		Usage:
		  nato
		  nato -h
		EOF
}

sub help($fh) {
	print $fh <<~'EOF';


		Options:
		  -h, --help    show this message


		Translate the given input to the NATO phonetic alphabet.


		Examples:

		  Spell 'EuAndreh':

		    $ echo 'EuAndreh' | nato
		    Echo Uniform Alfa November Delta Romeo Echo Hotel
		EOF
}

for (@ARGV) {
	last if $_ eq '--';
	if ($_ eq '--help') {
		usage *STDOUT;
		help *STDOUT;
		exit
	}
}

my %opts;
if (!Getopt::Std::getopts('h', \%opts)) {
	usage *STDERR;
	exit 2;
}

if ($opts{h}) {
	usage *STDOUT;
	help *STDOUT;
	exit;
}

my %DICT = (
	'a' => 'Alfa',
	'b' => 'Bravo',
	'c' => 'Charlie',
	'd' => 'Delta',
	'e' => 'Echo',
	'f' => 'Foxtrot',
	'g' => 'Golf',
	'h' => 'Hotel',
	'i' => 'India',
	'j' => 'Juliett',
	'k' => 'Kilo',
	'l' => 'Lima',
	'm' => 'Mike',
	'n' => 'November',
	'o' => 'Oscar',
	'p' => 'Papa',
	'q' => 'Quebec',
	'r' => 'Romeo',
	's' => 'Sierra',
	't' => 'Tango',
	'u' => 'Uniform',
	'v' => 'Victor',
	'w' => 'Whiskey',
	'x' => 'X-ray',
	'y' => 'Yankee',
	'z' => 'Zulu',
	'1' => 'One',
	'2' => 'Two',
	'3' => 'Three',
	'4' => 'Four',
	'5' => 'Five',
	'6' => 'Six',
	'7' => 'Seven',
	'8' => 'Eight',
	'9' => 'Nine',
	'0' => 'Zero',
);

while (<STDIN>) {
	for my $c (split //, $_) {
		my $char = $DICT{lc $c};
		print "$char " if defined $char;
	}
	print "\n";
}