Create an internal CLI using Just
The article outlines the development of an internal command-line interface for Acme Corporation to boost productivity, emphasizing the use of the "just" tool for cross-platform command management and documentation.
Read original articleThe article discusses the creation of an internal command-line interface (CLI) for a hypothetical company, Acme Corporation, aimed at enhancing productivity and preserving institutional knowledge among developers. It emphasizes the importance of having a common entry point for commands, ease of contribution, cross-platform compatibility, and discoverability of commands. The author suggests using the tool "just," which is designed for running commands and is cross-platform, as the foundation for this CLI. The setup process involves creating a folder, adding a justfile, and defining various recipes (commands) that can be executed. The article provides examples of simple and platform-specific recipes, such as retrieving AWS IAM identities and listing systemd services. It also highlights the ability to embed scripts within recipes and the importance of documentation for user adoption. The final sections encourage sharing recipes via GitHub and suggest further enhancements like using nushell for cross-platform scripting and implementing command completions.
- Internal CLIs can help preserve knowledge and streamline workflows in development teams.
- The "just" tool is recommended for creating a cross-platform internal CLI.
- Recipes can be defined for various commands, including platform-specific and embedded scripts.
- Documentation and user adoption are critical for the success of internal tools.
- Sharing and updating recipes can be efficiently managed through GitHub.
Related
Start all of your commands with a comma (2009)
The article discusses creating a ~/bin/ directory in Unix to store custom commands, avoiding name collisions with system commands by prefixing custom commands with a comma. This technique ensures unique, easily accessible commands.
My List of CLI Gems
The article discusses various CLI gems for package management, categorized into sections like Utilities, Git tools, and more. Highlighted gems include fzf, bat, lazygit, tmux, and dua-cli for different functionalities.
Aliasing Your Git Commands for Maximum Developer Efficiency
The article explains how to boost productivity in Git by creating command aliases, suggesting shortcuts for common tasks and emphasizing the use of the GitHub CLI for efficient pull requests.
Modern Unix Tool List
The article lists modern Unix command-line tools that enhance traditional utilities, highlighting Atuin, Bat, and Concurrently, while noting some tools as unsatisfactory and emphasizing the need for regular updates.
Essential Terminal Commands Every Developer Should Know
The article discusses ten essential terminal commands for Unix-like systems that enhance developer productivity, including `grep`, `ls`, `cat`, `head`, `awk`, `sed`, and `tail`, with practical usage examples.
https://docs.fabfile.org/en/latest/getting-started.html#adde...
If you are Python dev, you could specify Python dependencies for script using pep 723 https://iscinumpy.dev/post/pep723/ (nix might be an overkill).
For notebooks, workflows, personal playbooks, notes Org Babel could be used (emacs) Here's example code blocks in Haskell (but many other languages can be used such as shell, jupyter, plantuml) https://youtu.be/1qOFYluebBg?si=muGfsaC1kI7Cgpyw
One of my favorite features are subtree specific settings that enable remote shell commands by configuring :dir to /ssh:host:
You can do all of this with make and make includes.
Related
Start all of your commands with a comma (2009)
The article discusses creating a ~/bin/ directory in Unix to store custom commands, avoiding name collisions with system commands by prefixing custom commands with a comma. This technique ensures unique, easily accessible commands.
My List of CLI Gems
The article discusses various CLI gems for package management, categorized into sections like Utilities, Git tools, and more. Highlighted gems include fzf, bat, lazygit, tmux, and dua-cli for different functionalities.
Aliasing Your Git Commands for Maximum Developer Efficiency
The article explains how to boost productivity in Git by creating command aliases, suggesting shortcuts for common tasks and emphasizing the use of the GitHub CLI for efficient pull requests.
Modern Unix Tool List
The article lists modern Unix command-line tools that enhance traditional utilities, highlighting Atuin, Bat, and Concurrently, while noting some tools as unsatisfactory and emphasizing the need for regular updates.
Essential Terminal Commands Every Developer Should Know
The article discusses ten essential terminal commands for Unix-like systems that enhance developer productivity, including `grep`, `ls`, `cat`, `head`, `awk`, `sed`, and `tail`, with practical usage examples.