-- Fehler, wenn die Breiten nicht hinkommen in make_usage_info
module Main (main) where
import HsShellScript
import Data.Maybe
import Data.List
import Debug.Trace
import Control.Monad
import Control.Exception
import System.IO
header = "Testprogramm für Kommandozeilenargumente\n\n"
descs = [ d_trenner, d_pfade, d_uml, d_komp, d_inhalt ]
args = unsafe_getargs header descs
trenner_normal = " - "
pfade = args_req args d_pfade
trenner = fromMaybe trenner_normal $ optarg_req args d_trenner
inhalt = arg_switch args d_inhalt
komp = optarg_req args d_komp
d_komp =
argdesc [ desc_short 'k'
, desc_long "komp"
, desc_value_required
, desc_argname "<Name>"
, desc_description "Das ist eine lange Argumentbeschreibung, die umgebrochen werden muß, weil sie zu lang ist. Wirklich. Undhierkommteinganzlangeswortdasgetrenntwerdenmuß"
]
d_trenner =
argdesc [ desc_short 't'
, desc_long "langer-param"
, desc_at_most_once
, desc_value_required
, desc_argname "<Txt>"
, desc_description ("Diese Beschreibung\nhat mehrere\n\nZeilen.")
]
d_uml =
argdesc [ desc_long "äöüß"
, desc_at_most_once
]
d_pfade =
argdesc [ desc_direct
, desc_any_times
, desc_description ("Pfade, denen vorgesetzt werden soll; bzw, bla bla Verzeichnisse, die ihren Inhalten vorgesetzt werden sollen")
]
d_inhalt =
argdesc [ desc_long "inhalt"
, desc_description ("Nicht angegebenen Dateien vorsetzen, sondern dem Inhalt der angegebenen Verzeichnisse. Angegebene Nicht-Verzeichnisse \
\beiseitelassen.")
]
main = mainwrapper $ do
seq args (return ())
print_usage_info stdout "Das ist ein langer Header... Das ist ein langer Header... Das ist ein langer Header... Das\
\ist ein langer Header... Das ist ein langer Header... Das ist ein langer Header... Das ist \
\ein langer Header... Das ist ein langer Header... Das ist ein langer Header... \n\n"
descs