Files
mgmt/examples/lang/tar.mcl
James Shubin e7b57a32fd engine: resources: Add a tar resource
This makes tar archives from a list of files and/or directories. It
correctly includes empty directories as well. The code structure is
similar to the gzip resource. While this resource is arguably more
useful than gzip, it was invaluable to write the gzip resource first
since that made writing this one much easier.
2024-09-13 20:04:53 -04:00

53 lines
867 B
Plaintext

# make a tar archive!
file "/tmp/tar/" {
state => "exists",
}
file ["/tmp/tar/a", "/tmp/tar/bb", "/tmp/tar/cccc",] {
state => "exists",
content => "some file\n",
Before => Tar["/tmp/foo.tar"],
}
file "/tmp/tar/hello" {
state => "exists",
content => "hello world from purpleidea!\n",
Before => Tar["/tmp/foo.tar"],
}
file "/tmp/tar/dir/" {
state => "exists",
}
file "/tmp/tar/dir/deep_file" {
state => "exists",
content => "this is a deeply nested file!\n",
Before => Tar["/tmp/foo.tar"],
}
file "/tmp/standalone" {
state => "exists",
content => "this is some standalone file!\n",
Before => Tar["/tmp/foo.tar"],
}
tar "/tmp/foo.tar" {
inputs => [
"/tmp/tar/",
"/tmp/standalone",
],
format => $const.res.tar.format.gnu,
Depend => File["/tmp/tar/"], # TODO: add autoedges
}
# bonus
gzip "/tmp/foo.tar.gz" {
input => "/tmp/foo.tar",
}