#!/bin/sh create_ls_entry () { echo "#+title: =~/$1=" > index.org echo "* Directories" >> index.org for dir in */; do echo "- [[https://jjanzen.ca/dotfiles/$1/${dir}][${dir}]]" >> index.org done echo "* Files" >> index.org find -- . -maxdepth 1 -type f | sed 's/^\.\///' | while read -r file; do if test -f "${file}"; then if [ "${file}" = "*" ] || [ "${file}" = "index.org" ] || [ "${file}" = "README.md" ] || [ "${file}" = "LICENSE" ] || [ "${file}" = ".build.yml" ]; then continue elif [ "${file}" = ".wallpaper" ]; then echo "- [[https://wallhaven.cc/w/vgryy5][.wallpaper]]" >> index.org continue fi if echo "${file}" | grep -q "\.org\$"; then new_file=$(basename "$(grep '#+begin_src' "${file}" | head -1 | cut -d ' ' -f 4)") fi if [ "$new_file" = "" ]; then new_file=$file fi echo "- [[https://jjanzen.ca/dotfiles/$1/${file}][${new_file}]]" >> index.org fi done } cd ~/.dotfiles || exit START=$(pwd) create_ls_entry "" # iterate over all files except the .git/ directory and . find -- . -type d | sed '/^\.\$/d' | sed '/^\.\/\.git\//d' | sed '/^\.\/.git/d' | while read -r dir; do cd "${dir}" || continue line=$(echo "${line}" | sed 's/^\.\///') create_ls_entry "${dir}" cd "${START}" || exit done