Tutorial Overview
This tutorial demonstrates how to use the glob pattern tool in
code2prompt CLI to filter and manage files based on include and exclude
patterns. It will drive you through a small playground to practice different filtering scenarios.
Ensure you have code2prompt installed. If you haven’t installed it yet, refer to the
Glob patterns work similarly to tools like tree or grep,
providing powerful filtering capabilities. If you never heard about what is a glob pattern, check out the
for more informations.
To practice with glob patterns, let’s create a sample folder structure with some files as a playground.
Run this script to set up a temporary directory structure
mkdir -p test_dir/{lowercase,uppercase,.secret}
# Create files in the structure
echo " content foo.py " > " test_dir/lowercase/foo.py "
echo " content bar.py " > " test_dir/lowercase/bar.py "
echo " content baz.py " > " test_dir/lowercase/baz.py "
echo " content qux.txt " > " test_dir/lowercase/qux.txt "
echo " content corge.txt " > " test_dir/lowercase/corge.txt "
echo " content grault.txt " > " test_dir/lowercase/grault.txt "
echo " CONTENT FOO.py " > " test_dir/uppercase/FOO.PY "
echo " CONTENT BAR.py " > " test_dir/uppercase/BAR.PY "
echo " CONTENT BAZ.py " > " test_dir/uppercase/BAZ.PY "
echo " CONTENT QUX.txt " > " test_dir/uppercase/QUX.TXT "
echo " CONTENT CORGE.txt " > " test_dir/uppercase/CORGE.TXT "
echo " CONTENT GRAULT.txt " > " test_dir/uppercase/GRAULT.TXT "
echo " top secret " > " test_dir/.secret/secret.txt "
To clean up the structure later, run:
It will create the following directory structure:
Directory test_dir
Directory lowercase
foo.py bar.py baz.py qux.txt corge.txt grault.txtDirectory uppercase
FOO.py BAR.py BAZ.py QUX.txt CORGE.txt GRAULT.txtDirectory .secret
By default, code2prompt includes all files in the specified directory respecting the .gitignore.
The Include and Exclude options allow you to filter files dynamically based on glob patterns.
Glob patterns allow you to specify rules for filtering files and directories.
Include Patterns (--include or -i): Specify files and directories you want to include.
Exclude Patterns (--exclude or -e): Specify files and directories you want to exclude.
If you want to learn more about the internals you can check out the
Command:
All files are included:
lowercase/foo.py
lowercase/bar.py …
uppercase/FOO.py …
.secret/secret.txt
Exclude .txt or .md files:
code2prompt test_dir --exclude= " *.txt,*.md "
Excluded:
Included:
lowercase/foo.py
lowercase/bar.py
uppercase/FOO.py
Include only Python files:
code2prompt test_dir --include= " *.py "
Included:
Excluded:
Include .py files but exclude files in the uppercase folder:
code2prompt test_dir --include= " *.py " --exclude= " **/uppercase/* " --include-priority=true
Included:
All lowercase/1 files having .py extension
Excluded:
All uppercase files
.secret/secret.txt
Exclude the uppercase directory:
code2prompt test_dir --exclude " **/uppercase* "
or with short syntax:
code2prompt test_dir -e " uppercase* "
Included:
All files in lowercase and .secret
Excluded:
The glob pattern tool in code2prompt allows you to filter files and directories effectively using:
--include for specifying files to include
--exclude for files to exclude
--include-priority for resolving conflicts between patterns
To practice, set up the sample directory, try out the commands, and see how the tool filters files dynamically.