#!/bin/sh create_ls_entry () { echo "#+title: =~/$1=" > index.org echo "* Directories" >> index.org if [ "$1" != "" ]; then echo "- [[https://jjanzen.ca/dotfiles/$1..][=../=]]" >> index.org fi find -- . -maxdepth 1 -type d | sed '/^\.$/d' | sed 's/^\.\///' | while read -r dir; do if [ "${dir}" != "*" ] && [ "${dir}" != ".git" ]; then echo "- [[https://jjanzen.ca/dotfiles/$1${dir}][=${dir}/=]]" >> index.org fi done echo "* Files" >> index.org find -- . -maxdepth 1 -type f | sed 's/^\.\///' | while read -r file; do if [ "${file}" = ".wallpaper" ]; then echo "- [[https://wallhaven.cc/w/vgryy5][=.wallpaper=]]" >> index.org elif echo "${file}" | grep -q "\.org$" && [ "${file}" != "index.org" ]; then new_file=$(basename "$(grep '#+begin_src' "${file}" | head -1 | cut -d ' ' -f 4)") html=$(echo "${file}" | sed 's/\.org$/\.html/') echo "- [[https://jjanzen.ca/dotfiles/$1${html}][=${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 dir=$(echo "${dir}" | sed 's/^\.\///') create_ls_entry "${dir}/" cd "${START}" || exit done