Skip to content

Instantly share code, notes, and snippets.

@danielbraun
Last active April 17, 2020 16:08
Show Gist options
  • Save danielbraun/e1534ce5da56894c4fce15a16016059b to your computer and use it in GitHub Desktop.
Save danielbraun/e1534ce5da56894c4fce15a16016059b to your computer and use it in GitHub Desktop.
My magic makefile to make everything happen
%.min.js: %.js
uglifyjs < $< > $@
%.xml: %.edn
edn2xml < $< > $@
%.bundle.js: %.js
browserify $< > $@
%.tab: %.mysql.sql
mysql --defaults-extra-file=my.cnf < $< > $@
%.dividends.csv:
curl "https://query1.finance.yahoo.com/v7/finance/download/$(shell basename $*)?period1=0&period2=$(shell date +%s)&interval=1d&events=div" > $@
%.sorted.csv: %.csv
csvsort < $< > $@
%/stocks.nyse.min.json:
curl 'https://www.nyse.com/api/quotes/filter' \
-XPOST \
-H 'Content-Type: application/json' \
--data-binary '{"instrumentType":"EQUITY","pageNumber":1,"maxResultsPerPage":100000}' > $@
%/dividends: %/stock_symbols.nyse.csv.tail
mkdir -p $@
cat $< | xargs printf "$@/%s.dividends.sorted.csv\n" | xargs $(MAKE)
%/stock_symbols.nyse.csv: %/stocks.nyse.csv
cat $< | csvcut -c symbolTicker > $@
%.tail: %
tail -n +2 < $< > $@
%.csv: %.json
json2csv < $< > $@
%.json: %.min.json
jq < $< > $@
%.min.json: %.csv
csvjson < $< > $@
%.out.edn: %.edn
%.xml: %.php
php < $< > $@
%.svg: %.csv
gnuplot -e "set key autotitle columnhead; set datafile separator ','; set terminal svg; plot '$<';" > $@
.PHONY: %/dividends
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment