Простой интерпретатор командной строки, поддерживающий самореализованные команды, вызов внешних программ, а также поддержку переменных, своих и окружения.
Данный интерпретатор уже поддерживает многие команды, такие как cat, echo, wc, grep и многие другие. Подробнее о них можете узнать в Commands.md
# build
chmod +x scripts/build.sh
./scripts/build.sh
# Run
chmod +x scripts/run.sh
./scripts/run.sh# build
scripts\build.bat
#Run
#scripts\run.bat
.\bin\cli-app.exeПри запуске, программа подгружает переменные окружения с вашего устройства. При запуске под unix-подобной системой это будут:
- "PWD", "SHELL", "TERM", "USER", "OLDPWD", "LS_COLORS", "MAIL", "PATH", "LANG", "HOME", "_*"
Для запуска всех unit-test программы, запустите:
go test -v ./...Основные причины выбора pflag для вашего CLI-проекта:
-
Совместимость с POSIX/GNU стилем флагов
- Поддержка коротких (
-v) и длинных (--verbose) флагов - Возможность комбинирования коротких флагов (
-a -b -c→-abc)
- Поддержка коротких (
-
Интеграция с Go-экосистемой
- Разработана создателями Cobra (популярного фреймворка для CLI)
- Широко используется в известных Go-проектах (Kubernetes, Docker CLI)
-
Богатый функционал
flagSet.IntVarP(&port, "port", "p", 8080, "server port")
- Поддержка типизированных флагов (int, bool, string и др.)
- Автоматическая генерация help-сообщений
| Библиотека | POSIX флаги | Подкоманды | Типизация | Сложность | Размер |
|---|---|---|---|---|---|
flag |
❌ | ❌ | ✅ | Low | 0MB |
pflag |
✅ | ❌ | ✅ | Medium | 0.5MB |
cli |
✅ | ✅ | ✅ | High | 2MB |
cobra |
✅ | ✅ | ✅ | High | 3MB |
kong |
✅ | ✅ | ✅ | Very High | 1MB |
pflag идеально подходит для вашего проекта потому что:
- Обеспечивает нужную функциональность для
grep(поддержка-i,-w,-A) - Не вводит избыточных зависимостей
- Сохраняет совместимость с Unix-традициями
- Позволяет легко расширять функционал в будущем
Если вам так понравился наш продукт, что у вас появилось желание его доработать, вы всегда можете добавить в него свой функционал.