-
Tổng quan bài viết
- Giới thiệu nhiều mẹo khác nhau để tự động hóa công cụ CLI bằng cách kết hợp Ruby vào script Bash.
- Dù có thể dùng các ngôn ngữ scripting khác, bài viết nhấn mạnh tính dễ đọc và linh hoạt của Ruby.
-
Vì sao dùng Ruby thay cho Bash?
- Ruby cung cấp các kiểu dữ liệu rõ ràng (số nguyên, số thực dấu phẩy động, chuỗi, mảng, hash, v.v.), giúp mã nguồn dễ đọc hơn.
- Với người dùng macOS, nếu đã cài homebrew thì Ruby đi kèm mặc định mang lại tính ứng dụng cao.
- Ruby được tận dụng rất hữu ích trong các script build/tự động hóa như CocoaPod, Fastlane, v.v.
- Có thể xử lý dễ dàng nhiều định dạng dữ liệu như JSON, CSV, YAML nhờ thư viện tích hợp sẵn.
-
Viết script Ruby One-Liner
- Script một dòng có thể chạy theo dạng
ruby -e "<expression>". - Có thể dùng pipe và redirect để nhận rồi xử lý kết quả từ các công cụ CLI khác.
- Tùy chọn
-rcho phép nạp trước các thư viện cần thiết để mở rộng tính năng.
- Script một dòng có thể chạy theo dạng
-
Thử kết hợp với các công cụ CLI khác
- Khi kết hợp Ruby với AWS CLI, Git, GitHub CLI, jq, curl, v.v., có thể tối đa hóa thế mạnh của từng công cụ đơn chức năng.
- Ví dụ xử lý dữ liệu JSON:
- Gọi API bằng
curl, sau đó parse dữ liệu bằng thư viện JSON của Ruby và in ra trường cụ thể (ví dụ: title).
- Gọi API bằng
- Ví dụ xử lý dữ liệu YAML:
- Đọc file bằng
cat config.yaml, sau đó parse bằng thư viện YAML của Ruby để trích xuất giá trị cấu hình cụ thể.
- Đọc file bằng
- Có thể hậu xử lý thêm kết quả từ công cụ CLI bằng Ruby để xây dựng workflow tự động hóa linh hoạt hơn.
-
Xử lý dữ liệu phi cấu trúc (ví dụ Git Log)
- Không phải mọi dữ liệu đều có cấu trúc như JSON/CSV/YAML.
- Với biểu thức chính quy và khả năng xử lý văn bản của Ruby, có thể đọc log, thông điệp hệ thống, v.v. theo từng dòng để trích xuất thông tin cần thiết.
- Ví dụ script Git Log:
- Trích xuất log commit một dòng bằng
git log --oneline #{file}. - Dùng
gum choose --limit 100để chọn tương tác log mong muốn. - Trích xuất hash commit từ từng log đã chọn rồi dùng
git showđể in chi tiết thay đổi. - Cuối cùng, tái cấu trúc các log đã chọn và in ra dưới dạng checklist.
- Trích xuất log commit một dòng bằng
-
Lời kết
- Khi kết hợp công cụ CLI với script Ruby, bạn có thể tạo ra các công cụ tự động hóa mạnh mẽ chỉ bằng những tổ hợp lệnh đơn giản.
- Có thể tự động hóa hiệu quả các tác vụ xử lý dữ liệu phức tạp, phân tích log và quản lý phiên bản để tối đa hóa năng suất.
- Một khởi đầu nhỏ có thể tạo ra thay đổi lớn, và bài viết khuyến khích bạn bắt đầu dự án phụ của riêng mình.
- Ngoài ra, Perl cũng hữu ích, và các tài liệu như Perl One-Liners Guide có thể giúp ích.
Chưa có bình luận nào.