Cobra เป็นไลบรารีสำหรับสร้างแอปพลิเคชัน CLI สมัยใหม่อันทรงพลัง
Cobra ถูกใช้ในโครงการ Go มากมาย เช่น Kubernetes, Hugo และ GitHub CLI เป็นต้น รายการนี้ประกอบด้วยรายการโครงการที่ใช้ Cobra อย่างกว้างขวางยิ่งขึ้น
Cobra เป็นไลบรารีที่ให้อินเทอร์เฟซที่เรียบง่ายเพื่อสร้างอินเทอร์เฟซ CLI สมัยใหม่ที่ทรงพลังซึ่งคล้ายกับเครื่องมือ git & go
งูเห่าให้:
CLI ที่ใช้คำสั่งย่อยอย่างง่าย: app server
, app fetch
ฯลฯ
แฟล็กที่สอดคล้องกับ POSIX อย่างสมบูรณ์ (รวมถึงเวอร์ชันสั้นและยาว)
คำสั่งย่อยที่ซ้อนกัน
ธงระดับโลก ระดับท้องถิ่น และแบบเรียงซ้อน
คำแนะนำอันชาญฉลาด ( app srver
... คุณหมายถึง app server
เปล่า?)
การสร้างความช่วยเหลืออัตโนมัติสำหรับคำสั่งและแฟล็ก
ความช่วยเหลือการจัดกลุ่มสำหรับคำสั่งย่อย
การรับรู้สถานะความช่วยเหลืออัตโนมัติของ -h
, --help
ฯลฯ
เติมเชลล์อัตโนมัติที่สร้างขึ้นโดยอัตโนมัติสำหรับแอปพลิเคชันของคุณ (bash, zsh, fish, powershell)
man page ที่สร้างขึ้นโดยอัตโนมัติสำหรับแอปพลิเคชันของคุณ
นามแฝงคำสั่งเพื่อให้คุณสามารถเปลี่ยนสิ่งต่าง ๆ ได้โดยไม่ทำลายมัน
ความยืดหยุ่นในการกำหนดความช่วยเหลือ การใช้งาน ฯลฯ ของคุณเอง
ตัวเลือกการผสานรวมที่ราบรื่นกับ viper สำหรับแอป 12 ปัจจัย
Cobra สร้างขึ้นจากโครงสร้างของคำสั่ง อาร์กิวเมนต์ และแฟล็ก
คำสั่ง แสดงถึงการกระทำ Args คือสิ่งของ และ แฟล็ก เป็นตัวแก้ไขการกระทำเหล่านั้น
แอปพลิเคชั่นที่ดีที่สุดจะอ่านเหมือนประโยคเมื่อใช้ และด้วยเหตุนี้ ผู้ใช้จึงรู้วิธีโต้ตอบกับพวกเขาโดยสัญชาตญาณ
รูปแบบที่ต้องปฏิบัติตามคือ APPNAME VERB NOUN --ADJECTIVE
หรือ APPNAME COMMAND ARG --FLAG
ตัวอย่างที่ดีในโลกแห่งความเป็นจริงบางตัวอย่างอาจอธิบายประเด็นนี้ได้ดีกว่า
ในตัวอย่างต่อไปนี้ 'เซิร์ฟเวอร์' คือคำสั่ง และ 'พอร์ต' คือแฟล็ก:
hugo server --port=1313
ในคำสั่งนี้ เรากำลังบอกให้ Git โคลน URL เปลือย
git clone URL --bare
Command เป็นจุดศูนย์กลางของแอปพลิเคชัน การโต้ตอบแต่ละครั้งที่แอปพลิเคชันรองรับจะอยู่ในคำสั่ง คำสั่งสามารถมีคำสั่งลูกและรันการดำเนินการเป็นทางเลือกได้
ในตัวอย่างข้างต้น 'server' คือคำสั่ง
ข้อมูลเพิ่มเติมเกี่ยวกับงูเห่า.คอมมานด์
ธงเป็นวิธีการปรับเปลี่ยนพฤติกรรมของคำสั่ง Cobra รองรับการตั้งค่าสถานะที่สอดคล้องกับ POSIX อย่างสมบูรณ์ รวมถึงแพ็คเกจการตั้งค่าสถานะ Go คำสั่ง Cobra สามารถกำหนดแฟล็กที่คงอยู่จนถึงคำสั่งลูกและแฟล็กที่พร้อมใช้งานสำหรับคำสั่งนั้นเท่านั้น
ในตัวอย่างข้างต้น 'พอร์ต' คือธง
ฟังก์ชั่นการตั้งค่าสถานะมีให้โดยไลบรารี pflag ซึ่งเป็นทางแยกของไลบรารีมาตรฐานการตั้งค่าสถานะซึ่งรักษาอินเทอร์เฟซเดียวกันในขณะที่เพิ่มการปฏิบัติตาม POSIX
การใช้ Cobra เป็นเรื่องง่าย ขั้นแรก ให้ใช้ go get
เพื่อติดตั้งไลบรารีเวอร์ชันล่าสุด
go get -u github.com/spf13/cobra@latest
ถัดไป รวม Cobra ในใบสมัครของคุณ:
นำเข้า "github.com/spf13/cobra"
cobra-cli
เป็นโปรแกรมบรรทัดคำสั่งสำหรับสร้างแอปพลิเคชันงูเห่าและไฟล์คำสั่ง มันจะบูตระบบช่วยสนับสนุนแอปพลิเคชันของคุณเพื่อพัฒนาแอปพลิเคชันที่ใช้ Cobra อย่างรวดเร็ว นี่เป็นวิธีที่ง่ายที่สุดในการรวม Cobra เข้ากับแอปพลิเคชันของคุณ
สามารถติดตั้งได้โดยการรัน:
go install github.com/spf13/cobra-cli@latest
สำหรับรายละเอียดทั้งหมดเกี่ยวกับการใช้ตัวสร้าง Cobra-CLI โปรดอ่านตัวสร้าง Cobra README
สำหรับรายละเอียดทั้งหมดเกี่ยวกับการใช้ห้องสมุด Cobra โปรดอ่านคู่มือผู้ใช้ Cobra
Cobra เปิดตัวภายใต้ลิขสิทธิ์ Apache 2.0 ดู LICENSE.txt