groovy - CliBuilder: First option or second option -


मैंने निम्नलिखित क्लिबइल्डर विकल्प परिभाषित किए हैं:

  #! / Usr / bin / env groovy आयात करें org.apache.commons.cli.Option def cli = new CliBuilder () cli.with {d (longOpt: 'डेटाबेस', 'डाटाबेस', आर्ग्स: 1, आवश्यक: सत्य) यू (लंबे ऑप्शन: 'उपयोगकर्ता', ' यूजर ', एल्ग्स: 1, जरूरी: सच) पी (लोंगओप्ट:' पासवर्ड ',' पासवर्ड ', आर्ग्स: 1, जरूरी है: सच) _ (लोंग ऑप्ट:' डूफू ', आर्जनेम:' फू परम ', आर्ग्स: 1, "फू बनाओ") _ (लोंगओप्ट: 'डारबैर', 'बार बार करो।')} डीईपी opt = सीएलआई। पीआरएसई (एल्ग्स) अगर (ओप) रिटर्न अगर (ऑप्ट एच) सीएलआई। यूजेज () प्रिंट्लएन "हुर्रे "  

पैरामीटर डी, यू और पी को आवश्यक के रूप में परिभाषित किया गया है। doFoo और doBar को नहीं परिभाषित की आवश्यकता है, लेकिन इनमें से एक होना चाहिए कम से कम परिभाषित है, अन्यथा प्रोग्राम विफल होना चाहिए / विधि उपयोग को निष्पादित करना चाहिए।

इसका समाधान करने का सबसे अच्छा तरीका क्या है? क्या एक तरह से या हालत (doFoo या doBar) को लागू करने का कोई तरीका है?

ऐसा लगता नहीं है कि तर्क के बीच या स्थिति के लिए विशेष रूप से कुछ बिंदु पर है। आप इसे स्वयं करने की कोशिश कर सकते हैं, ऐसा कुछ ऐसा काम करने लगता है:

  // def से अधिक कोड चुनिए = cli.parse (args) अगर (! (Opt.getInner ()। Find {it.longOpt == 'doFoo'}} opt.getInner ()। Options.find {it.longOpt == 'doBar'})) {println "doFoo या doBar शामिल करना आवश्यक है!"   

नीचे दिए गए कोड / cli.usage () return} / same code को आउटपुट के साथ डूफू या डौबर सहित अधिक विशिष्ट संदेश देगा। < / html>

Comments

Popular posts from this blog

mysql - where clause in inner join query -

java - Why my included JSP file won't get processed correctly? -

php - MySQL Query for Advanced Search multiple criteria -