#!/usr/bin/env bash # generate-config-org.sh # Creates a config.org file with tangles for all files in ~/.config CONFIG_DIR="$HOME/.config" OUTPUT_FILE="config.org" # Start fresh echo "#+TITLE: Config Tangling" > "$OUTPUT_FILE" echo "# Tangled from ~/.config files" >> "$OUTPUT_FILE" echo >> "$OUTPUT_FILE" # Loop through all files in .config recursively find "$CONFIG_DIR" -type f | while read -r FILE; do REL_PATH="${FILE#$HOME/}" # Remove home prefix DIR_NAME=$(dirname "$REL_PATH") BASE_NAME=$(basename "$REL_PATH") # Add org heading echo "** =$REL_PATH=" >> "$OUTPUT_FILE" echo "These are the config files for $DIR_NAME" >> "$OUTPUT_FILE" # Add src block with tangle echo "#+BEGIN_SRC bash :tangle generated/$REL_PATH :mkdirp yes :eval never-html" >> "$OUTPUT_FILE" cat "$FILE" >> "$OUTPUT_FILE" echo "#+END_SRC" >> "$OUTPUT_FILE" echo >> "$OUTPUT_FILE" done echo "Generated $OUTPUT_FILE with tangles for all ~/.config files."