boot

:boot-clj: https://boot-clj.github.io/ — build tooling for Clojure. Dev chat in #boot-dev
ClashTheBunny 2018-06-03T21:15:47.000101Z

Hey folks, I'm trying to develop a build.boot file for cljsjs and wondering if I can run individual deftasks while working on them. They seem to return functions, but I don't see anywhere where the arguments to those functions are documented.

seancorfield 2018-06-03T22:05:05.000083Z

@clashthebunny In a REPL you can run tasks using the boot function.

ClashTheBunny 2018-06-03T22:05:26.000114Z

How do you compose the steps of the tasks?

seancorfield 2018-06-03T22:06:07.000093Z

See the README https://github.com/boot-clj/boot#build-from-the-repl

seancorfield 2018-06-03T22:07:28.000084Z

You'll also want to read the Task Writer's Guide https://github.com/boot-clj/boot/wiki/Task-Writer%27s-Guide

ClashTheBunny 2018-06-03T22:10:14.000095Z

How would I run the subsequent task multiple times without repeating the first task. Like, I want to run download once and then run build multiple times.

ClashTheBunny 2018-06-03T22:12:29.000012Z

Kinda like a docker container build only re-runs the lines after the change?

seancorfield 2018-06-03T22:19:25.000023Z

It's just code: just call the build task multiple times.

ClashTheBunny 2018-06-03T22:21:15.000094Z

It seems to run correctly when I run (boot (download-mcw-react) (build-material-components-react)) but when I run (boot (download-mcw-react)) (boot (build-material-components-react))` I get java.io.IOException: error=2, No such file or directory.

seancorfield 2018-06-03T22:22:47.000055Z

The stacktrace should tell you where that error is originating.

seancorfield 2018-06-03T22:23:51.000050Z

Ah, each boot pipeline works on a fresh fileset. Unless you use target to write files after the download, they won't be there for a subsequent boot pipeline.

ClashTheBunny 2018-06-03T22:24:58.000002Z

Yeah! So, I need to export the fileset each time I'm done with a task?

seancorfield 2018-06-03T22:25:46.000102Z

If you want to run tasks in separate pipelines, yes, you need to use target to save the files to a concrete folder, then subsequent pipelines need that folder as one of the inputs.