lk/Makefile

48 lines
1.3 KiB
Makefile
Raw Normal View History

2025-02-11 18:09:37 +00:00
FZF != command -v sk || command -v fzy || command -v fzf || \
{ echo install a fuzzy finder && exit 1 ;}
2025-02-11 11:55:07 +00:00
help: ## Print the help message
@awk 'BEGIN {FS = ":.*?## "} /^[0-9a-zA-Z._-]+:.*?## / {printf "\033[36m%s\033[0m : %s\n", $$1, $$2}' $(MAKEFILE_LIST) | \
sort | \
column -s ':' -t
articles != find * -type f -name "*.md"
db.rec: $(articles)
for x in $^ ; do \
2025-02-11 17:04:03 +00:00
sed -n '2,/^---$$/ {/^---$$/d; p}' "$$x" |\
sed -e 's/\[ //' -e 's/ \]//' |\
tr -d '"' ;\
printf "file: %s\n\n" "$$x" ;\
2025-02-11 11:55:07 +00:00
done > $@
2025-02-11 17:04:03 +00:00
recsel $@ -e "requires != ''" -CR title,requires |\
while read title requires; do \
IFS=', ' && for provider in $$requires; do \
recset $@ -e "title = '$${provider}'" -f provides -a "$${title}" ;\
done ;\
done
2025-02-11 11:55:07 +00:00
default += db.rec
.git/info/exclude: $(default)
echo $^ | tr ' ' '\n' > $@
default += .git/info/exclude
.PHONY: database
database: $(default) ## Make a database for recfiles
2025-02-11 12:06:37 +00:00
.PHONY: article
article: ## Write an article
2025-02-11 18:09:37 +00:00
@path=$$(find . -type d -printf '%P\n' | $(FZF)); \
2025-02-11 12:06:37 +00:00
read -p "Title: " title; \
printf '%s\n' '---' >> $$path/$$title.md ; \
printf 'title: "%s"\n' "$$title" >> $$path/$$title.md ; \
printf 'tags: [ "%s" ]\n' "$$path" | sed 's#\/#", "#g' >> $$path/$$title.md ; \
printf '%s\n\n' '---' >> $$path/$$title.md ;\
$(EDITOR) +5 $$path/$$title.md
2025-02-11 17:04:03 +00:00
.PHONY: clean
clean: ## Remove all generated files
2025-02-11 11:55:07 +00:00
$(RM) $(default)