#!/bin/sh create_ls_entry () { echo "#+title: =~/$1=" > index.org echo "* Directories" >> index.org find -- . -maxdepth 1 -type d | sed '/^\.$/d' | sed 's/^\.\///' | while read -r dir; do if [ "${dir}" != "*" ]; 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 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)") else new_file=$file fi 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