Ayrıştırma ve yardım üretme komut satırı tartışmalarının yaygarası üzerinde soyutlamak için bir monad kullanan bir kitaplık arıyorum. Aklımda şu oldukça açık kullanım deseni vardır:Komut satırı argümanları monad kütüphanesini okuma
main = do
portOrSocket <- Args.run $ do
mbSocket <- Args.read $ Args.Arg "s" "socket" "Description"
mbPort <- Args.read $ Args.Arg "p" "port" "Description"
case mbSocket of
Just socket -> return $ Right socket
Nothing -> case mbPort of
Just port -> return $ Left port
Nothing -> return $ Left defaultPort
...
Yukarıdaki kod ayrıştırma, doğrulama ve kullanım nesil işlemek için gerekli tüm bilgiler ve IMO anlamak oldukça kolaydır. Ne yazık ki, hackage ve cmdargs, cmdlib, parseargs, ReadArgs gibi paketleri kontrol ettikten sonra bir şey bulamadık. Ama uygulamaya geçmeden önce hiçbir şeyi kaçırmadığımdan emin olmak isterim. Yani, soruna benzer bir yaklaşımdan yararlanan bir kütüphane var mı?
Eğer 'optparse-applicative' denediniz mi? Optparse-applicative için –
+1. Bu harika. – jtobin
Diğer parametrelerin değerlerine bağlı olarak parametreler otomatik yardım mesajları oluşturmak neredeyse imkansız gibi görünüyor. Bu muhtemelen _optparse-applicative_ uygulamasının Uygulamayı kullandığıdır. –