Packages
fermo
0.19.2
0.20.1
0.20.0
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.1
0.17.0
0.16.7
0.16.6
0.16.5
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.0
0.14.9
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.9
0.13.8
0.13.7
0.13.6
0.13.5
0.13.4
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.1
0.11.0
0.10.0
0.9.1
0.9.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.0
0.3.0
0.2.4
0.2.2
0.2.1
0.2.0
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
A static site generator
Current section
Files
Jump to
Current section
Files
lib/mix/fermo/compiler/manifest.ex
defmodule Mix.Fermo.Compiler.Manifest do
@manifest_vsn 1
@callback timestamp() :: term()
def timestamp, do: Mix.Utils.last_modified(path())
def path do
Path.join(Mix.Project.manifest_path(), "compile.fermo")
end
def read do
if File.exists?(path()) do
case path() |> File.read!() |> :erlang.binary_to_term() do
[@manifest_vsn | sources] -> sources
_ -> MapSet.new({})
end
else
MapSet.new([])
end
end
@callback write([Path.t()], term()) :: {:ok}
def write(sources, timestamp) do
manifest_data =
[@manifest_vsn | sources]
|> :erlang.term_to_binary([:compressed])
path = path()
File.write!(path, manifest_data)
File.touch!(path, timestamp)
{:ok}
end
end