31 lines
988 B
Bash
Executable File
31 lines
988 B
Bash
Executable File
#!/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."
|