कमांड लाइन इंटरफेस (सीएलआई) अभी भी ग्राफिकल यूजर इंटरफेस (जीयूआई) और उनके इंटरैक्टिव विज़ुअल घटकों के रूप में लोकप्रिय हैं। सीएलआई एप्लिकेशन को स्थापित करने के लिए आवश्यक सादगी, सहजता, गति और कम संसाधनों के कारण सीएलआई अभी भी उपयोग में हैं।
अधिकांश सीएलआई ऐप्स ऑपरेटिंग सिस्टम के टर्मिनल या कमांड लाइन पर चलते हैं, जीयूआई के रूप में कई संसाधनों की आवश्यकता के बिना लचीलापन बढ़ाते हैं।
आप Python से C++, Rust, और Go जैसी लोकप्रिय भाषाओं के साथ CLI बना सकते हैं। अधिकांश भाषाएँ बाहरी निर्भरता के बिना CLI ऐप बनाने के लिए पैकेज प्रदान करती हैं।
जाओ और कमांड लाइन एप्लीकेशन
गो प्रोग्रामिंग भाषा के लिए इच्छित उपयोग मामलों में से एक प्रदर्शनकारी इंटरैक्टिव सीएलआई का निर्माण कर रहा है। वर्षों से, गो ने क्षेत्र में कर्षण प्राप्त किया है।
गो डॉकर सीएलआई, ह्यूगो, गिटहब सीएलआई और अन्य जैसे लोकप्रिय सीएलआई अनुप्रयोगों को शक्ति प्रदान करता है। सीएलआई ऐप्स के निर्माण के लिए गो पसंदीदा भाषाओं में से एक है, इसके प्रदर्शन के साथ-साथ उनके लिए प्रथम श्रेणी का समर्थन दिया गया है।
वहाँ है झंडा कमांड-लाइन पार्सिंग के लिए पैकेज, लेकिन इसमें बहुत अधिक कार्यक्षमता का अभाव है जिसकी आपको आधुनिक कमांड-लाइन ऐप बनाने की आवश्यकता होगी। साथ ही, सीएलआई ऐप विकसित कर रहा है
झंडा पैकेज जटिल हो सकता है क्योंकि आपके ऐप का आकार बढ़ता है और आप अधिक सुविधाओं को शामिल करते हैं।गो इकोसिस्टम में सीएलआई के निर्माण के लिए कई प्रतिष्ठित पैकेज हैं, जिसमें आपके विकास के समय को कम करने में मदद करने वाली विशेषताएं हैं।
कोबरा पैकेज
कोबरा गो इकोसिस्टम और उससे आगे सीएलआई के निर्माण के लिए सबसे लोकप्रिय पैकेजों में से एक है। कोबरा किसी भी वातावरण में इंटरैक्टिव, आधुनिक सीएलआई ऐप बनाने के लिए एक पैकेज है।
कोबरा गो टूल्स और गिट के समान उद्योग-मानक के सीएलआई के निर्माण के लिए एक सरल इंटरफ़ेस प्रदान करता है। डॉकर, कुबेरनेट्स, ट्विच, ह्यूगो और कई अन्य लोगों सहित कोबरा आपके द्वारा इंटरैक्ट किए गए कई सीएलआई अनुप्रयोगों को शक्ति प्रदान करता है।
कोबरा उपयोग में आसान, उप-आदेश-आधारित उपकरण है। यह POSIX- संगत फ़्लैग्स, नेस्टेड उप-आदेशों और वैश्विक, स्थानीय और कैस्केडिंग फ़्लैग्स का समर्थन करता है।
कोबरा बुद्धिमान सुझावों, स्वत: सहायता पीढ़ी, ध्वज पहचान और कमांड उपनामों का भी समर्थन करता है। यह बैश, पॉवर्सशेल, फिश और Zsh पर शेल स्वत: पूर्णता की अनुमति देता है, और इसके साथ एकीकरण करता है नाग 12-फैक्टर ऐप्स के लिए पैकेज।
कोबरा पैकेज और इसकी निर्भरताओं के नवीनतम संस्करण को स्थापित करने के लिए इस आदेश को अपनी कार्यशील निर्देशिका के टर्मिनल में चलाएं।
जाना प्राप्त करें -u github.com/spf13/cobra@latest
कोबरा तेज और आसान विकास के लिए एक सीएलआई ऐप प्रदान करता है। कोबरा-क्ली पैकेज बॉयलरप्लेट कोड उत्पन्न करता है जिसे आप बिना किसी परेशानी के अपने ऐप में नए आदेश जोड़ने के लिए कॉन्फ़िगर कर सकते हैं।
कोबरा-क्ली पैकेज के नवीनतम संस्करण को स्थापित करने के लिए इस आदेश को अपनी कार्यशील निर्देशिका के टर्मिनल में चलाएं।
जाना github.com/spf13/cobra-cli@latest इंस्टॉल करें
कोबरा जनरेटर (कोबरा-क्ली) और अन्य गो कमांड लाइन टूल का उपयोग करने के लिए आपको अपने GOPATH चर को अपनी कार्यशील निर्देशिका में सेट करना होगा।
एक सफल स्थापना के बाद, आप अपने प्रोजेक्ट में कोबरा ऐप को इस में आज्ञा।
कोबरा-क्ली init
कोबरा ऐप को इनिशियलाइज़ करने के बाद, आप इसका उपयोग कर सकते हैं जोड़ना उपकमांड के साथ कोबरा-क्ली अपने कोबरा ऐप में एक नया कमांड बनाने और जोड़ने के लिए कमांड।
कोबरा-क्ली नया कमांड जोड़ें
कमांड आपको कमांड के लिए आवश्यक कोड के साथ एक नई फ़ाइल बनाता है। आप अपने ऑपरेशन के आधार पर फ़ाइल को संपादित कर सकते हैं।
कोबरा-क्ली कमांड से उत्पन्न कमांड के लिए यहां एक साधारण कमांड हैंडलर फ़ंक्शन है।
आयात (
"एफएमटी"
"github.com/spf13/cobra"
"लकड़ी का लट्ठा"
"स्ट्रकोनव"
)// एक कोबरा जनित कमांड
// newCmd नई कमांड का प्रतिनिधित्व करता है
वर newCmd = & कोबरा. आज्ञा {
का प्रयोग करें: "newCmd",
संक्षिप्त: "आपके द्वारा निर्दिष्ट नया सीएमडी विवरण",
लंबा: `एक लंबा विवरण जो कई पंक्तियों को फैलाता है और इसमें उदाहरण शामिल हैं
और अपने आदेश का उपयोग करने का उपयोग। उदाहरण के लिए:
कोबरा एक सीएलआई लाइब्रेरी है के लिए जाओ जो अनुप्रयोगों को सशक्त बनाता है।
यह एप्लिकेशन आवश्यक फ़ाइलों को उत्पन्न करने के लिए एक उपकरण है
जल्दी से कोबरा एप्लिकेशन बनाने के लिए।`,दौड़ना: समारोह(सीएमडी * कोबरा। कमान, आर्ग []डोरी) {
अगरलेन(तर्क) < 1 {
लकड़ी का लट्ठा। घातक ("कोई अतिरिक्त तर्क नहीं")
}
तर्क: = तर्क [0]
fmt. Println (तर्क)
}
}समारोहइस में() {
rootCmd. AddCommand (newCmd)// यहां आप अपने झंडे और कॉन्फ़िगरेशन सेटिंग्स को परिभाषित करेंगे।
// कोबरा Persistent Flags को सपोर्ट करता है जो इस कमांड के लिए काम करेगा
// और सभी उप-आदेश, उदाहरण:
// नया सीएमडी। PersistentFlags().String("foo", "", "A help for foo")
// कोबरा स्थानीय झंडों का समर्थन करता है जो केवल इस आदेश पर चलेंगे
// सीधे कहा जाता है, जैसे:
// नया सीएमडी। झंडे ()। बूलप ("टॉगल", "टी", झूठा, "टॉगल के लिए सहायता संदेश")
}
आप के साथ अतिरिक्त तर्कों तक पहुंच सकते हैं तर्क समारोह का तर्क। उपरोक्त फ़ंक्शन का उपयोग करता है अगर यह जाँचने के लिए कि क्या टर्मिनल से कोई अतिरिक्त तर्क है और तर्क को प्रिंट करता है।
सीएलआई पैकेज
क्ली पैकेज गो में तेजी से, वितरण योग्य सीएलआई ऐप्स बनाने के लिए एक अभिव्यक्ति-थीम वाला न्यूनतम पैकेज है।
क्ली पैकेज श्रेणियों के साथ कमांड लाइन तर्कों, झंडों और उप-आदेशों का समर्थन करता है। इसमें छोटे विकल्पों को पूरा करने की कार्यक्षमता है, बैश पूर्णता, जनरेट की गई सहायता और संस्करण बनाना।
क्ली पैकेज गो के बिल्ट-इन के साथ इंटरऑपरेबल है झंडा और प्रसंग संकुल, और आप में अधिकांश सुविधाओं का उपयोग कर सकते हैं झंडा क्लि के साथ पैकेज।
अपने प्रोजेक्ट में ग्राफ़क्ल-गो पैकेज और इसकी निर्भरताओं को जोड़ने के लिए इन आदेशों को अपनी कार्यशील निर्देशिका के टर्मिनल में चलाएं।
जाना github.com/urfave/cli प्राप्त करें
यहां बताया गया है कि आप अपने सीएलआई ऐप में क्ली पैकेज के साथ कमांड कैसे जोड़ सकते हैं।
पैकेट मुख्य
आयात (
"एफएमटी"
"लकड़ी का लट्ठा"
"ओएस""github.com/urfave/cli/v2"
)समारोहमुख्य() {
एप := &cli. अनुप्रयोग {
नाम: "नया",
उपयोग: "निर्माण ए नया क्लि के साथ आदेश पैकेट",
कार्य: समारोह(*क्लि. प्रसंग)गलती {
fmt. Println ("यहाँ है a नया आज्ञा")
वापस करनाशून्य
},
}
अगर त्रुटि: = ऐप। रन (ओ.एस. आर्ग्स); गलती! = शून्य {
लकड़ी का लट्ठा। घातक (गलत)
}
}
में मुख्य कार्य, द अनुप्रयोग चर एक क्ली ऐप और एप्लिकेशन का एक उदाहरण है कार्य फ़ील्ड ऐप का हैंडलर फ़ंक्शन है। यहां ही नया कमांड फ़ंक्शन से पाठ को प्रिंट करेगा या ऐप से कोई त्रुटि होने पर त्रुटि लौटाएगा।
क्ली पैकेज छोटी परियोजनाओं के लिए बहुत अधिक जटिलता या विशेषताओं के बिना सहायक है।
गो-आर्ग पैकेज
गो-आर्ग पैकेज गो में सीएलआई तर्कों को पार्स करने के लिए एक संरचना-आधारित पैकेज है। गो-आर्ग पैकेज के साथ, आप सीएलआई तर्कों के लिए संरचना की घोषणा कर सकते हैं और नियमित गो डेटा संरचनाओं के रूप में तर्कों पर काम कर सकते हैं। गो-आर्ग पैकेज आवश्यक तर्क, स्थितिगत तर्क, पर्यावरण चर, उपयोग तार, डिफ़ॉल्ट मान और कई अन्य सुविधाएँ प्रदान करता है।
पैकेज बुनियादी प्रकारों जैसे पूर्णांक, फ्लोटिंग पॉइंट, स्ट्रिंग और बूलियन का समर्थन करता है। यह यूआरएल, समय अवधि, ईमेल पते जैसे अधिक जटिल प्रकारों का भी समर्थन करता है। मैक पते, पॉइंटर्स, स्लाइस, मैप्स, और कोई प्रकार।
आप उपयोग कर सकते हैं पाना Go-arg पैकेज को अपने पैकेज की निर्भरताओं में जोड़ने के लिए कमांड।
जाना github.com/alexflint/ प्राप्त करेंजाना-आर्ग
गो-आर्ग पैकेज उपयोग करने के लिए सरल और सहज है। यहां बताया गया है कि आप कमांड लाइन से तर्कों को कैसे स्वीकार कर सकते हैं और उन्हें कमांड लाइन कंसोल पर प्रिंट कर सकते हैं।
समारोहमुख्य() {
वर तर्क struct {
फू डोरी
छड़ बूल
}
तर्क। मस्टपार्स(&आर्ग्स)
fmt. प्रिंट्लन (तर्क। फू, आर्ग। छड़)
}
तर्क स्ट्रक्चर सीएलआई एप्लिकेशन के लिए स्ट्रक्चर इंस्टेंस है। मस्टपार्स विधि कमांड लाइन से तर्कों को संरचना उदाहरण में पार्स करती है।
आप प्रोग्राम को आसानी से चला सकते हैं दौड़ना आदेश और फ़ाइल नाम के बाद तर्क निर्दिष्ट करें।
जाना मुख्य भागो।जाना --फू = हैलो --बार
आप भी इस्तेमाल कर सकते हैं निर्माण निष्पादन योग्य चलाने और तर्कों को निर्दिष्ट करने से पहले अपने ऐप को निष्पादन योग्य बनाने के लिए कमांड।
जाना मुख्य निर्माण।जाना
./main --foo=hello --bar
जीयूआई और सीएलआई के बीच महत्वपूर्ण अंतर हैं जिन पर आपको विचार करना होगा
विकास के दौरान, यदि आपको अपने उपयोगकर्ताओं के लिए सीएलआई या जीयूआई बनाने के बीच चयन करना है, तो आपको चुनाव करने के लिए कई कारकों पर विचार करना होगा।
जीयूआई पर सीएलआई का उपयोग करने से कार्यक्रम तेज, आसान स्वचालन और कम संसाधन उपयोग होता है। यदि इनमें से कोई भी लाभ आपके आवेदन के लिए महत्वपूर्ण नहीं है, तो आप जीयूआई के साथ बेहतर हो सकते हैं क्योंकि वे सामान्य उपयोगकर्ताओं के साथ अधिक लोकप्रिय हैं।