alecthomas / alecthomas/bit

Ensure outdated/removed/zombie outputs are deleted

Open
#5 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
17
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Given a rule like:

```
build/%{1}: cmd/*
inputs: **/*.go
build: go build -o %{OUT} -o build/%{1}
```

If a `cmd` is removed or renamed between builds, the `build` directory will contain stale outputs. The Bit database could be used to track this . This should be relatively straightforward, in that we could populate a variable with a list of files that have been removed from the build since the last run.

eg.

```
build/%{1}: cmd/*
inputs: **/*.go
build:
for stale in %{STALE}; do [[ $stale == build/* ]] && rm $stale; done
go build -o %{OUT} -o build/%{1}
```

Shake has the concept of ["pruning"](http://neilmitchell.blogspot.com/2015/04/cleaning-stale-files-with-shake.html), which could be useful inspiration.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.