-- 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 "" , 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 "" , 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