Swift पर CLI उपयोगिताएँ: शुरुआत से कमांड लाइन टूल बनाना

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Swift पर आपकी पहली CLI: विचार से तैयार टूल तक

\n\n

क्या आपने कभी सोचा है कि टर्मिनल में वे सुविधाजनक उपयोगिताएँ — curl, git, brew — कैसे बनाई जाती हैं? पता चला है, अपनी खुद की Swift पर CLI उपयोगिता लिखना एक साधारण iOS ऐप बनाने से ज्यादा कठिन नहीं है। इससे भी बढ़कर, Swift इसके लिए एकदम सही है: यह तेज़ है, मेमोरी में सुरक्षित है, और macOS और Linux दोनों पर बढ़िया काम करता है।

\n\n

इस लेख में हम शुरुआत से एक पूर्ण कंसोल टूल बनाएंगे, जो आर्गुमेंट पार्स करेगा, रंगीन टेक्स्ट प्रदर्शित करेगा और त्रुटियों को भी संभालेगा। आप सीखेंगे कि कैसे Swift Package Manager के माध्यम से प्रोजेक्ट सेट अप करें, शक्तिशाली ArgumentParser लाइब्रेरी को जोड़ें और उपयोगिता को Homebrew में प्रकाशन के लिए तैयार करें। तैयार हैं? चलिए शुरू करते हैं!

\n\n

CLI के लिए Swift क्यों बढ़िया है?

\n\n

जब कमांड लाइन टूल बनाने की बात आती है, तो कई लोग तुरंत Python, Bash या Go के बारे में सोचते हैं। लेकिन Swift एक डार्क हॉर्स है जो आश्चर्यचकित करता है:

\n\n
    \n
  • C के स्तर की गति — आपकी उपयोगिता तेज़ी से काम करेगी।
  • \n
  • सुरक्षित मेमोरी प्रबंधन — कोई segfault या मेमोरी लीक नहीं।
  • \n
  • क्रॉस-प्लेटफ़ॉर्म समर्थन — Swift Linux पर बढ़िया काम करता है, इसलिए आपका CLI सर्वर पर भी चलाया जा सकता है।
  • \n
  • आधुनिक सिंटैक्स — कोड अच्छी कहानी की तरह पढ़ा जाता है।
  • \n
  • विशाल इकोसिस्टम — Swift Package Manager (SPM) हजारों लाइब्रेरीज़ तक पहुँच देता है।
  • \n
\n\n

वैसे, यदि आप पहले से Python में लिखते हैं और CLI के लिए कुछ नया आज़माना चाहते हैं, तो Swift एक बेहतरीन विकल्प होगा: आपको बिना किसी निर्भरता और न्यूनतम मेमोरी खपत वाला एक नेटिव बाइनरी मिलेगा।

\n\n

प्रोजेक्ट सेटअप: Swift Package Manager

\n\n

सबसे पहले एक नया प्रोजेक्ट बनाते हैं। टर्मिनल खोलें और निम्नलिखित चलाएँ:

\n\n
mkdir MyCLI\ncd MyCLI\nswift package init --type executable
\n\n

यह कमांड एक मानक SPM संरचना बनाएगी। Package.swift फ़ाइल पर ध्यान दें — यह आपके प्रोजेक्ट का दिल है। इसे संपादित करके Apple/Swift ArgumentParser पर निर्भरता जोड़ें:

\n\n
// swift-tools-version:5.9\nimport PackageDescription\n\nlet package = Package(\n    name: "MyCLI",\n    dependencies: [\n        .package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.2.0")\n    ],\n    targets: [\n        .executableTarget(\n            name: "MyCLI",\n            dependencies: [\n                .product(name: "ArgumentParser", package: "swift-argument-parser")\n            ]\n        )\n    ]\n)
\n\n

अब swift build चलाएँ। SPM स्वचालित रूप से लाइब्रेरी डाउनलोड करेगा और प्रोजेक्ट बनाएगा। यदि सब कुछ सफल रहा — तो आप कोड लिखने के लिए तैयार हैं!

\n\n

पहली कमांड लिखना: स्टेरॉयड पर Hello World

\n\n

Sources/MyCLI/main.swift खोलें और एक सरल कमांड लिखें जो अभिवादन प्रदर्शित करे। लेकिन सिर्फ "Hello, World!" नहीं, बल्कि आर्गुमेंट का उपयोग करके:

\n\n
import ArgumentParser\n\nstruct HelloCommand: ParsableCommand {\n    static let configuration = CommandConfiguration(\n        commandName: "hello",\n        abstract: "अभिवादन प्रदर्शित करता है",\n        discussion: "दुनिया या किसी विशिष्ट व्यक्ति का अभिवादन करने के लिए इस कमांड का उपयोग करें।"\n    )\n\n    @Argument(help: "जिस व्यक्ति का अभिवादन करना है उसका नाम")\n    var name: String = "World"\n\n    @Option(name: .shortAndLong, help: "दोहराव की संख्या")\n    var count: Int = 1\n\n    func run() throws {\n        for _ in 0..<count {\n            print("नमस्ते, \\(name)! 👋")\n        }\n    }\n}\n\nHelloCommand.main()
\n\n

चलाएँ: swift run MyCLI hello --count 3 "iOS Developer"। आप देखेंगे:

\n\n
नमस्ते, iOS Developer! 👋\nनमस्ते, iOS Developer! 👋\nनमस्ते, iOS Developer! 👋
\n\n

ध्यान दें: Argumen

ब्लॉग

पुस्तक अनुशंसाएँ