Packages
caffeine_lang
0.0.10
6.3.1
6.3.0
6.2.2
6.2.1
6.2.0
6.1.2
6.1.1
6.1.0
6.0.0
5.6.0
5.5.0
5.4.4
5.4.3
5.4.2
5.4.1
5.4.0
5.3.0
5.2.0
5.1.1
5.1.0
5.0.12
5.0.11
5.0.10
5.0.8
5.0.7
5.0.6
5.0.5
5.0.4
5.0.1
5.0.0
4.10.0
4.9.0
4.8.3
4.8.2
4.8.1
4.8.0
4.7.9
4.7.8
4.7.7
4.7.6
4.7.5
4.6.7
4.6.6
4.6.5
4.6.4
4.6.3
4.6.2
4.6.0
4.5.1
4.5.0
4.4.4
4.4.3
4.4.1
4.4.0
4.3.7
4.3.6
3.0.6
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
1.0.2
1.0.1
0.1.0
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.2
0.0.1
A compiler for generating reliability artifacts from service expectation definitions.
Current section
Files
Jump to
Current section
Files
src/caffeine_lang@phase_5@terraform@generator.erl
-module(caffeine_lang@phase_5@terraform@generator).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/caffeine_lang/phase_5/terraform/generator.gleam").
-export([build_provider/1, build_backend/0, build_variables/1, build_slo_definitions/1, build_main/1, generate/2]).
-export_type([supported_provider/0]).
-type supported_provider() :: datadog.
-file("src/caffeine_lang/phase_5/terraform/generator.gleam", 19).
-spec do_build_provider(supported_provider()) -> binary().
do_build_provider(Provider) ->
case Provider of
datadog ->
caffeine_lang@phase_5@terraform@datadog:provider()
end.
-file("src/caffeine_lang/phase_5/terraform/generator.gleam", 12).
-spec build_provider(list(supported_provider())) -> binary().
build_provider(Providers) ->
_pipe = Providers,
_pipe@1 = gleam@list:unique(_pipe),
_pipe@2 = gleam@list:map(_pipe@1, fun do_build_provider/1),
gleam@string:join(_pipe@2, <<"\n"/utf8>>).
-file("src/caffeine_lang/phase_5/terraform/generator.gleam", 25).
-spec build_backend() -> binary().
build_backend() ->
<<"terraform {
backend \"local\" {
path = \"terraform.tfstate\"
}
}"/utf8>>.
-file("src/caffeine_lang/phase_5/terraform/generator.gleam", 40).
-spec do_build_variables(supported_provider()) -> binary().
do_build_variables(Provider) ->
case Provider of
datadog ->
caffeine_lang@phase_5@terraform@datadog:variables()
end.
-file("src/caffeine_lang/phase_5/terraform/generator.gleam", 33).
-spec build_variables(list(supported_provider())) -> binary().
build_variables(Providers) ->
_pipe = Providers,
_pipe@1 = gleam@list:unique(_pipe),
_pipe@2 = gleam@list:map(_pipe@1, fun do_build_variables/1),
gleam@string:join(_pipe@2, <<"\n"/utf8>>).
-file("src/caffeine_lang/phase_5/terraform/generator.gleam", 46).
-spec build_slo_definitions(
list(caffeine_lang@types@resolved@resolved_slo:slo())
) -> binary().
build_slo_definitions(Slos) ->
_pipe = Slos,
_pipe@1 = gleam@list:map(
_pipe,
fun caffeine_lang@phase_5@terraform@datadog:full_resource_body/1
),
gleam@string:join(_pipe@1, <<"\n\n"/utf8>>).
-file("src/caffeine_lang/phase_5/terraform/generator.gleam", 52).
-spec build_main(list(caffeine_lang@types@resolved@resolved_slo:slo())) -> binary().
build_main(Slos) ->
Backend = build_backend(),
Slo_definitions = build_slo_definitions(Slos),
<<<<Backend/binary, "\n\n"/utf8>>/binary, Slo_definitions/binary>>.
-file("src/caffeine_lang/phase_5/terraform/generator.gleam", 58).
-spec generate(list(caffeine_lang@types@resolved@resolved_slo:slo()), binary()) -> {ok,
nil} |
{error, simplifile:file_error()}.
generate(Slos, Output_directory) ->
gleam_stdlib:println(
<<<<"Writing variables to file "/utf8, Output_directory/binary>>/binary,
"/variables.tf"/utf8>>
),
_ = simplifile_erl:delete(<<Output_directory/binary, "/variables.tf"/utf8>>),
_ = simplifile:create_file(
<<Output_directory/binary, "/variables.tf"/utf8>>
),
_ = simplifile:append(
<<Output_directory/binary, "/variables.tf"/utf8>>,
build_variables([datadog])
),
gleam_stdlib:println(
<<<<"Writing providers to file "/utf8, Output_directory/binary>>/binary,
"/providers.tf"/utf8>>
),
_ = simplifile_erl:delete(<<Output_directory/binary, "/providers.tf"/utf8>>),
_ = simplifile:create_file(
<<Output_directory/binary, "/providers.tf"/utf8>>
),
_ = simplifile:append(
<<Output_directory/binary, "/providers.tf"/utf8>>,
build_provider([datadog])
),
gleam_stdlib:println(
<<<<"Writing main to file "/utf8, Output_directory/binary>>/binary,
"/main.tf"/utf8>>
),
_ = simplifile_erl:delete(<<Output_directory/binary, "/main.tf"/utf8>>),
_ = simplifile:create_file(<<Output_directory/binary, "/main.tf"/utf8>>),
_ = simplifile:append(
<<Output_directory/binary, "/main.tf"/utf8>>,
build_main(Slos)
),
{ok, nil}.