txt2html: use Getopt::Long for saner command line arg handling
[~bandali/bndl.org] / txt2html
index 128995c..f2a23d9 100644 (file)
--- a/txt2html
+++ b/txt2html
 
 use strict;
 use warnings 'all';
+use Getopt::Long;
+
+my $opt_lang = 'en';
+GetOptions ('lang=s' => \$opt_lang)
+    or die("bad command line arguments\n");
 
 my $link_re =
     qr{([\('!])?\b((?:ftps?|https?|nntps?|imaps?|s?news|gopher)://
@@ -91,7 +96,7 @@ sub linkify {
 my $txt = do { local $/; <STDIN> };
 my $title = html_esc($txt =~ /\A([^\n]+)/);
 $title =~ s/^\s+|\s+$//g;
-if ($ARGV[0] and $ARGV[0] eq 'fa') {
+if ($opt_lang eq 'fa') {
     $title .= ' &mdash; بندعلی' if $title !~ /بندعلی/;
 } else {
     $title .= ' &mdash; bandali' if $title !~ /bandali/;
@@ -100,16 +105,14 @@ if ($ARGV[0] and $ARGV[0] eq 'fa') {
 $txt = linkify(html_esc($txt));
 
 print('<!doctype html>',
-      ($ARGV[0] and $ARGV[0] eq 'fa')
-      ? '<html lang="fa" dir="rtl">'
-      : '<html>',
-      '<head>',
-      '<meta
+      qq(<html lang="$opt_lang"),
+      $opt_lang eq 'fa' ? ' dir="rtl"' : '', '>',
+      '<head><meta
 http-equiv="Content-Type"
 content="text/html; charset=utf-8"
 />',
       "<title>$title</title>",
-      ($ARGV[0] and $ARGV[0] eq 'fa')
+      $opt_lang eq 'fa'
       ? "\n<style>\@font-face{font-family:sahel;font-weight:normal;
 src:local('Sahel WOL'),local('Sahel'),
 url('sahel.woff2')format('woff2');}pre{font-family:sahel}</style>\n"