Skip to content

Instantly share code, notes, and snippets.

@jeffrydegrande
Last active November 23, 2023 23:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save jeffrydegrande/2aced238c08dea876816834b9b490c58 to your computer and use it in GitHub Desktop.
Save jeffrydegrande/2aced238c08dea876816834b9b490c58 to your computer and use it in GitHub Desktop.
#!/bin/bash
#
# This script will create a 'backend.md' and 'frontend.md' containing
# all the source code in the current directory. You can then upload these
# files to a custom GPT. It's setup for my golang project but you can easily
# modify it to suit your needs.
#
# This script requires 'fd' to be installed.
set -e
function file_to_markdown() {
path=$1
ext="${path##*.}"
declare -A ext_map
ext_map=(
["js"]="javascript"
["go"]="go"
["html"]="html"
["css"]="css"
["rb"]="ruby"
["rs"]="rust"
["ts"]="typescript"
["py"]="python"
["java"]="java"
["c"]="c"
["cpp"]="cpp"
["lua"]="lua"
# add more languages here
)
# Get filetype from the extension
filetype="${ext_map[$ext]}"
echo -e "## File: $path \n\`\`\`$filetype"
cat $path
echo -e "\`\`\`\n"
echo -e "---\n\n"
}
if [ ! -x "$(command -v fd)" ]; then
echo "fd is not installed"
exit 1
fi
# cleanup
rm -f frontend.md backend.md
# create frontend.md
for f in $(fd -e js -e html -e css); do
file_to_markdown "$f" >> frontend.md
done
# create backend.md
for f in $(fd -e go); do
file_to_markdown "$f" >> backend.md
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment