Top Related Projects
Master the command line, in one page
A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
📖 A collection of pure bash alternatives to external processes.
📚 Collaborative cheatsheets for console commands
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools and more.
Quick Overview
Joe is a simple and lightweight command-line tool for generating .gitignore files. It allows users to quickly create .gitignore files for their projects by specifying programming languages, IDEs, or operating systems. Joe simplifies the process of setting up version control for various development environments.
Pros
- Easy to use with a simple command-line interface
- Supports a wide range of programming languages and development tools
- Regularly updated with new .gitignore templates
- Lightweight and fast, with no external dependencies
Cons
- Limited customization options for advanced users
- Requires manual installation and updates
- No graphical user interface for non-technical users
- May not cover all possible project configurations
Code Examples
# Generate a .gitignore file for a Python project
joe py
# Generate a .gitignore file for a Node.js project using npm
joe node
# Generate a .gitignore file for multiple languages/tools
joe java,intellij,macos
Getting Started
-
Install Joe using npm:
npm install -g joe-gitignore
-
Generate a .gitignore file for your project:
joe <language or tool>
-
Joe will create a .gitignore file in your current directory with the appropriate rules for the specified language or tool.
Competitor Comparisons
Master the command line, in one page
Pros of The Art of Command Line
- Comprehensive guide covering a wide range of command-line topics
- Well-organized with clear sections and subsections
- Regularly updated with contributions from the community
Cons of The Art of Command Line
- May be overwhelming for beginners due to its extensive content
- Lacks interactive elements or exercises for hands-on learning
Code Comparison
The Art of Command Line:
# Find files with names that contain "foo":
find . -name '*foo*'
# Find files that have been modified in the last day:
find . -mtime -1
Joe:
# Example of a simple Python function in Joe
def greet(name):
return f"Hello, {name}!"
print(greet("World"))
Summary
The Art of Command Line is a comprehensive resource for learning command-line skills, offering a wide range of topics and regular updates. However, it may be challenging for beginners and lacks interactive elements. Joe, on the other hand, is a project focused on Python programming examples, providing a different learning experience with more hands-on code snippets. The choice between the two depends on whether you're looking to improve command-line skills or learn Python programming.
A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
Pros of awesome-shell
- More comprehensive collection of shell-related tools and resources
- Regularly updated with new contributions from the community
- Organized into clear categories for easier navigation
Cons of awesome-shell
- Less focused on a specific use case or skill level
- May be overwhelming for beginners due to the large number of options
- Lacks detailed descriptions or usage examples for each tool
Code comparison
Not applicable, as both repositories are curated lists without significant code content.
Summary
awesome-shell is a more extensive collection of shell-related tools and resources, offering a wide range of options for users of all skill levels. It benefits from regular community updates and clear categorization. However, its breadth may be overwhelming for beginners, and it lacks detailed descriptions or usage examples.
joe, on the other hand, is a more focused collection of command-line tools and utilities. It may be more approachable for beginners or those looking for a curated selection of essential tools. However, it may not offer the same depth of resources as awesome-shell and may not be updated as frequently.
Both repositories serve as valuable resources for shell users, with awesome-shell catering to a broader audience and joe potentially being more suitable for those seeking a concise list of recommended tools.
📖 A collection of pure bash alternatives to external processes.
Pros of pure-bash-bible
- Focuses specifically on Bash scripting techniques and best practices
- Provides in-depth explanations and examples for various Bash operations
- Regularly updated with new content and improvements
Cons of pure-bash-bible
- Limited to Bash scripting, not covering other programming languages or tools
- May be overwhelming for beginners due to its comprehensive nature
- Lacks a structured learning path or curriculum
Code Comparison
pure-bash-bible example (String manipulation):
# Trim leading and trailing whitespace from a string
trim() {
: "${1#"${1%%[![:space:]]*}"}"
: "${_%"${_##*[![:space:]]}"}"
printf '%s\n' "$_"
}
joe example (Python implementation):
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
Summary
pure-bash-bible is a comprehensive resource for Bash scripting, offering detailed explanations and examples. It's ideal for those looking to master Bash but may be too focused for general programming needs. joe, on the other hand, provides a broader range of programming concepts and algorithms across multiple languages, making it more suitable for general-purpose learning and interview preparation.
📚 Collaborative cheatsheets for console commands
Pros of tldr
- Larger community with more contributors and users
- More comprehensive coverage of commands across various operating systems
- Regularly updated with new commands and improvements
Cons of tldr
- May be overwhelming for beginners due to the large number of commands
- Less focus on customization and personal command collections
Code comparison
tldr:
# ls
List directory contents.
- List files one per line:
ls -1
- List all files, including hidden files:
ls -a
- List all files, with trailing / added to directory names:
ls -F
joe:
# List all files in the current directory
ls -la
# Show hidden files
ls -a
# List files with details
ls -l
Summary
tldr is a community-driven project aimed at simplifying man pages with practical examples. It offers a wide range of commands for multiple operating systems and is regularly updated. Joe, on the other hand, is a smaller project focused on providing a personal collection of commands and shortcuts.
tldr's strength lies in its comprehensive coverage and active community, making it an excellent resource for both beginners and experienced users. However, its vast collection might be overwhelming for some users.
Joe offers a more curated and personalized approach, which can be beneficial for users looking for a smaller set of commonly used commands. It may be easier for beginners to navigate but lacks the extensive coverage and regular updates of tldr.
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
Pros of system-design-primer
- Comprehensive coverage of system design concepts and principles
- Includes diagrams, real-world examples, and interview preparation materials
- Regularly updated with contributions from the community
Cons of system-design-primer
- More complex and time-consuming to navigate due to its extensive content
- Primarily focused on theoretical concepts rather than practical implementation
- May be overwhelming for beginners or those seeking quick reference
Code comparison
While joe is a command-line tool written in Go, system-design-primer doesn't contain specific code implementations. Instead, it provides pseudocode and high-level explanations. Here's a brief comparison:
joe (Go):
func main() {
app := cli.NewApp()
app.Name = "joe"
app.Usage = "Generate .gitignore files"
app.Version = "0.1.0"
// ...
}
system-design-primer (Pseudocode):
class Cache:
def __init__(self, max_size):
self.max_size = max_size
self.size = 0
self.lookup = {}
self.linked_list = LinkedList()
def get(self, key):
# ...
The code comparison highlights the different focus of each repository: joe provides a practical tool, while system-design-primer offers conceptual explanations and examples.
A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools and more.
Pros of the-book-of-secret-knowledge
- Comprehensive collection of various IT-related resources and tools
- Regularly updated with new content and contributions from the community
- Well-organized structure with clear categories for easy navigation
Cons of the-book-of-secret-knowledge
- May be overwhelming for beginners due to the vast amount of information
- Lacks specific code examples or implementations
- Some links may become outdated over time
Code Comparison
As the-book-of-secret-knowledge is primarily a curated list of resources and joe is a .gitignore file generator, a direct code comparison is not applicable. However, here's a brief example of how they differ in content:
the-book-of-secret-knowledge (example entry):
- [explainshell.com](https://explainshell.com/) - Write down a command-line to see the help text that matches each argument.
joe (example usage):
$ joe python
# Creates a .gitignore file for Python projects
Summary
the-book-of-secret-knowledge is a comprehensive resource for IT professionals, offering a wide range of tools and knowledge across various domains. Joe, on the other hand, is a focused tool for generating .gitignore files for different programming languages and frameworks. While the-book-of-secret-knowledge provides breadth, joe offers specific functionality for a common development task.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
joe
A .gitignore
magician in your command line. Joe generates .gitignore
files from the command line for you.
Features
- Written in uncomplicated Go (Golang)
- No installation necessary - just use the binary.
- Stupidly easy to use
- Supports all Github-supported
.gitignore
files - Works on Mac, Linux and (maybe) Windows
- Supports other version control systems (
.hgignore
)
Installation
After install, make sure to run joe u
. This will download all .gitignore
files in ~/joe-data/
folder.
Option 1: Binary
joe
is available for OSX (macOS), Linux and Windows.
Download the latest binary from the Releases page. It's the easiest way to get started with joe
.
Make sure to add the location of the binary to your $PATH
.
Option 2: From source
$ git clone git@github.com:karan/joe.git
$ cd joe/
$ chmod +x tool.sh
$ ./tool.sh build
Usage
Commands:
ls | list list all available files
u | update update all available gitignore files
g | generate generate gitignore files
Basic usage
$ joe g java # outputs .gitignore file for java to stdout
To update your .gitignore
files at any time, simply run:
$ joe u
Overwrite existing .gitignore
file
$ joe g java > .gitignore # saves a new .gitignore file for java
Append to existing .gitignore
file
$ joe g java >> .gitignore # appends to an existing .gitignore file
Multiple languages
$ joe g java,node,osx > .gitignore # saves a new .gitignore file for multiple languages
Create and append to a global .gitignore file
You can also use joe to append to a global .gitignore. These can be helpful when you want to ignore files generated by an IDE, OS, or otherwise.
$ git config --global core.excludesfile ~/.gitignore # Optional if you have not yet created a global .gitignore
$ joe g OSX,SublimeText >> ~/.gitignore
List all available files
$ joe ls # OR `joe list`
Output:
actionscript, ada, agda, android, anjuta, appceleratortitanium, archives, archlinuxpackages, autotools, bricxcc, c, c++, cakephp, cfwheels, chefcookbook, clojure, cloud9, cmake, codeigniter, codekit, commonlisp, composer, concrete5, coq, craftcms, cvs, dart, darteditor, delphi, dm, dreamweaver, drupal, eagle, eclipse, eiffelstudio, elisp, elixir, emacs, ensime, episerver, erlang, espresso, expressionengine, extjs, fancy, finale, flexbuilder, forcedotcom, fortran, fuelphp, gcov, gitbook, go, gradle, grails, gwt, haskell, idris, igorpro, ipythonnotebook, java, jboss, jdeveloper, jekyll, jetbrains, joomla, jython, kate, kdevelop4, kohana, labview, laravel, lazarus, leiningen, lemonstand, libreoffice, lilypond, linux, lithium, lua, lyx, magento, matlab, maven, mercurial, mercury, metaprogrammingsystem, meteor, microsoftoffice, modelsim, momentics, monodevelop, nanoc, netbeans, nim, ninja, node, notepadpp, objective-c, ocaml, opa, opencart, oracleforms, osx, packer, perl, phalcon, playframework, plone, prestashop, processing, python, qooxdoo, qt, r, rails, redcar, redis, rhodesrhomobile, ros, ruby, rust, sass, sbt, scala, scons, scrivener, sdcc, seamgen, sketchup, slickedit, stella, sublimetext, sugarcrm, svn, swift, symfony, symphonycms, tags, tex, textmate, textpattern, tortoisegit, turbogears2, typo3, umbraco, unity, vagrant, vim, virtualenv, visualstudio, vvvv, waf, webmethods, windows, wordpress, xcode, xilinxise, xojo, yeoman, yii, zendframework, zephir
BONUS ROUND: Alternate version control software
Joe isn't just a generator for .gitignore
files. You can use it and its output wherever a SCM is used.
$ joe g java > .hgignore
Contributing
Bug Reports & Feature Requests
Please use the issue tracker to report any bugs or file feature requests.
Developing
PRs are welcome. To begin developing, do this:
$ git clone git@github.com:karan/joe.git
$ cd joe/
$ go run *.go
tool.sh
This is a handy script that automates a lot of developing steps.
USAGE:
$ $tool [-h|--help] COMMAND
EXAMPLES:
$ $tool deps Install dependencies for joe
$ $tool build Build a binary
$ $tool run Build and run the binary
Top Related Projects
Master the command line, in one page
A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
📖 A collection of pure bash alternatives to external processes.
📚 Collaborative cheatsheets for console commands
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools and more.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot