package=kanban version=0.1 targets=(kanband) type[kanband]=crystal sources[kanband]=src/main.cr depends[kanband]="$(ls src/*.cr | grep -v '/main.cr$')" targets+=(main.js) type[main.js]=livescript sources[main.js]=client/index.ls depends[main.js]="$(ls client/*.ls | grep -v /index.ls$ | tr '\n' ' ')" targets+=(style.css) type[style.css]=css sources[style.css]=client/style.sass # # implementation details below, bruh~ # (seriously, don’t read that unless you want to read that) # (I mean it, dude) # function LSC { echo "${fg_bold[blue]} LSC > ${fg_bold[white]}$@${reset_color}" } function BUN { echo "${fg_bold[green]} BUN > ${fg_bold[white]}$@${reset_color}" } function MIN { echo "${fg_bold[red]} MIN > ${fg_bold[white]}$@${reset_color}" } function CSS { echo "${fg_bold[yellow]} CSS > ${fg_bold[white]}$@${reset_color}" } function livescript.build { write "${target}: ${target%.js}.bundle.js $(dirdep $target)" write "\t@echo '$(MIN ${target%.js}.js)'" write "\t${Q}npx babel --minified ${target%.js}.bundle.js -o ${target}" write "\n" write "${target%.js}.bundle.js: ${sources[$target]} ${depends[$target]} $(dirdep $target)" write "\t@echo '$(BUN ${target%.js}.bundle.js)'" write "\t${Q}npx browserify -t browserify-livescript ${sources[$target]} -o ${target%.js}.bundle.js" write "\n" } function livescript.clean { write "${target}.clean:" for file in ${target} ${target%.js}.bundle.js; do write "\t@echo '$(RM ${file})'" write "\t${Q}rm -f ${file}" done write "\n" } function livescript.install { : FIXME } function livescript.uninstall { : FIXME } function css.build { write "${target}: ${sources[$target]} $(dirdep $target)" write "\t@echo '$(CSS ${target})'" write "\t${Q}sassc ${sources[$target]} > ${target}" write "\n" } function css.clean { script.clean "$@" } function css.install { : FIXME } function css.uninstall { : FIXME }