mirror of
https://github.com/opdavies/build-configs.git
synced 2025-03-13 05:26:56 +00:00
feat(terraform): add support for terraform repos
Add terraform as a project type, make the language optional, and add a .gitignore and justfile template for Terraform repositories.
This commit is contained in:
parent
9176f34444
commit
af24a4b4fa
|
@ -115,6 +115,13 @@ final class CreateListOfFilesToGenerate
|
|||
);
|
||||
}
|
||||
break;
|
||||
|
||||
case (strtolower(ProjectType::Terraform->name)):
|
||||
$filesToGenerate = collect([
|
||||
new TemplateFile(data: 'terraform/.gitignore', name: '.gitignore'),
|
||||
new TemplateFile(data: 'terraform/justfile', name: 'justfile'),
|
||||
]);
|
||||
break;
|
||||
}
|
||||
|
||||
$filesToGenerate[] = new TemplateFile(
|
||||
|
|
|
@ -47,14 +47,13 @@ final class Config
|
|||
public array $experimental;
|
||||
|
||||
#[Assert\Choice(choices: ['javascript', 'php', 'typescript'])]
|
||||
#[Assert\NotBlank]
|
||||
public string $language;
|
||||
|
||||
#[Assert\Length(min: 1)]
|
||||
#[Assert\NotBlank]
|
||||
public string $name;
|
||||
|
||||
#[Assert\Choice(choices: ['astro', 'drupal', 'fractal', 'laravel', 'php-library', 'vuejs'])]
|
||||
#[Assert\Choice(choices: ['astro', 'drupal', 'fractal', 'laravel', 'php-library', 'terraform', 'vuejs'])]
|
||||
#[Assert\NotBlank]
|
||||
public string $type;
|
||||
|
||||
|
|
|
@ -9,4 +9,5 @@ enum ProjectType
|
|||
case Astro;
|
||||
case Drupal;
|
||||
case Fractal;
|
||||
case Terraform;
|
||||
}
|
||||
|
|
45
templates/terraform/.gitignore.twig
Normal file
45
templates/terraform/.gitignore.twig
Normal file
|
@ -0,0 +1,45 @@
|
|||
# {{ managedText }}
|
||||
|
||||
# Created by https://www.toptal.com/developers/gitignore/api/terraform
|
||||
# Edit at https://www.toptal.com/developers/gitignore?templates=terraform
|
||||
|
||||
### Terraform ###
|
||||
# Local .terraform directories
|
||||
**/.terraform/*
|
||||
|
||||
# Plans
|
||||
terraform.tfplan
|
||||
|
||||
# .tfstate files
|
||||
*.tfstate
|
||||
*.tfstate.*
|
||||
|
||||
# Crash log files
|
||||
crash.log
|
||||
crash.*.log
|
||||
|
||||
# Exclude all .tfvars files, which are likely to contain sensitive data, such as
|
||||
# password, private keys, and other secrets. These should not be part of version
|
||||
# control as they are data points which are potentially sensitive and subject
|
||||
# to change depending on the environment.
|
||||
*.tfvars
|
||||
*.tfvars.json
|
||||
|
||||
# Ignore override files as they are usually used to override resources locally and so
|
||||
# are not checked in
|
||||
override.tf
|
||||
override.tf.json
|
||||
*_override.tf
|
||||
*_override.tf.json
|
||||
|
||||
# Include override files you do wish to add to version control using negated pattern
|
||||
# !example_override.tf
|
||||
|
||||
# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan
|
||||
# example: *tfplan*
|
||||
|
||||
# Ignore CLI configuration files
|
||||
.terraformrc
|
||||
terraform.rc
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/terraform
|
25
templates/terraform/justfile.twig
Normal file
25
templates/terraform/justfile.twig
Normal file
|
@ -0,0 +1,25 @@
|
|||
# {{ managedText|raw }}
|
||||
|
||||
default:
|
||||
@just --list
|
||||
|
||||
# Enable or disable Git hooks
|
||||
git-hooks command:
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
case "{{ '{{ command }}'|raw }}" in
|
||||
"on")
|
||||
echo "Enabling Git hooks..."
|
||||
git config core.hooksPath .githooks
|
||||
;;
|
||||
"off")
|
||||
echo "Disabling Git hooks..."
|
||||
git config --unset core.hooksPath
|
||||
;;
|
||||
*)
|
||||
echo "Error: Invalid argument. Must be either 'on' or 'off'"
|
||||
;;
|
||||
esac
|
||||
|
||||
# vim: ft=just
|
Loading…
Reference in a new issue