mirror of
https://github.com/opdavies/build-configs.git
synced 2025-02-08 16:15:03 +00:00
Initial Sculpin support
* Add Sculpin as a project type * Declare initial files to generate * Add flake.nix.twig * Add .gitignore.twig * Add run.twig
This commit is contained in:
parent
7bab7e91f4
commit
f98a69e21f
|
@ -25,6 +25,17 @@ final class CreateListOfFilesToGenerate
|
||||||
$filesToGenerate = collect();
|
$filesToGenerate = collect();
|
||||||
|
|
||||||
switch (strtolower($configDto->type)) {
|
switch (strtolower($configDto->type)) {
|
||||||
|
case (strtolower(ProjectType::Sculpin->name)):
|
||||||
|
$filesToGenerate = collect([
|
||||||
|
new TemplateFile(data: 'php/sculpin/.gitignore', name: '.gitignore'),
|
||||||
|
new TemplateFile(data: 'php/sculpin/run', name: 'run'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($configDto->isFlake) {
|
||||||
|
$filesToGenerate->push(new TemplateFile(data: 'php/sculpin/flake.nix', name: 'flake.nix'));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case (strtolower(ProjectType::Fractal->name)):
|
case (strtolower(ProjectType::Fractal->name)):
|
||||||
$filesToGenerate = collect([
|
$filesToGenerate = collect([
|
||||||
new TemplateFile(data: 'fractal/.gitignore', name: '.gitignore'),
|
new TemplateFile(data: 'fractal/.gitignore', name: '.gitignore'),
|
||||||
|
|
|
@ -243,7 +243,7 @@ final class ConfigDto
|
||||||
#[Assert\Type('string')]
|
#[Assert\Type('string')]
|
||||||
public string $projectRoot;
|
public string $projectRoot;
|
||||||
|
|
||||||
#[Assert\Choice(choices: ['drupal', 'fractal', 'laravel', 'php-library', 'symfony', 'terraform'])]
|
#[Assert\Choice(choices: ['drupal', 'fractal', 'laravel', 'php-library', 'sculpin', 'symfony', 'terraform'])]
|
||||||
public string $type;
|
public string $type;
|
||||||
|
|
||||||
#[Assert\Collection([
|
#[Assert\Collection([
|
||||||
|
|
|
@ -10,6 +10,7 @@ enum ProjectType: string
|
||||||
case Fractal = 'fractal';
|
case Fractal = 'fractal';
|
||||||
case Laravel = 'laravel';
|
case Laravel = 'laravel';
|
||||||
case PHPLibrary = 'php-library';
|
case PHPLibrary = 'php-library';
|
||||||
|
case Sculpin = 'sculpin';
|
||||||
case Symfony = 'symfony';
|
case Symfony = 'symfony';
|
||||||
case Terraform = 'terraform';
|
case Terraform = 'terraform';
|
||||||
}
|
}
|
||||||
|
|
12
templates/php/sculpin/.gitignore.twig
Normal file
12
templates/php/sculpin/.gitignore.twig
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
# {{ managedText|raw }}
|
||||||
|
|
||||||
|
/output_*/
|
||||||
|
/vendor/
|
||||||
|
|
||||||
|
{% if isFlake %}
|
||||||
|
/.direnv/
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% for path in git.ignore %}
|
||||||
|
{{ path }}
|
||||||
|
{% endfor %}
|
25
templates/php/sculpin/flake.nix.twig
Normal file
25
templates/php/sculpin/flake.nix.twig
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# {{ managedText|raw }}
|
||||||
|
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
devshell.url = "github:numtide/devshell";
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = inputs@{ flake-parts, ... }:
|
||||||
|
flake-parts.lib.mkFlake { inherit inputs; } {
|
||||||
|
imports = [ inputs.devshell.flakeModule ];
|
||||||
|
|
||||||
|
systems = [ "x86_64-linux" ];
|
||||||
|
|
||||||
|
perSystem = { config, self', inputs', pkgs, system, ... }: {
|
||||||
|
devshells.default = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
{% for package in flake.devshell.packages %}
|
||||||
|
"{{ package }}"
|
||||||
|
{% endfor %}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
41
templates/php/sculpin/run.twig
Executable file
41
templates/php/sculpin/run.twig
Executable file
|
@ -0,0 +1,41 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
PATH="${PATH}:./vendor/bin"
|
||||||
|
|
||||||
|
# Generate the site.
|
||||||
|
function generate {
|
||||||
|
local args=()
|
||||||
|
|
||||||
|
if [[ "${APP_ENV:-}" == "production" ]]; then
|
||||||
|
args=(--env="prod")
|
||||||
|
else
|
||||||
|
args=(--server --watch)
|
||||||
|
fi
|
||||||
|
|
||||||
|
sculpin generate "${args[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function help {
|
||||||
|
printf "%s <task> [args]\n\nTasks:\n" "${0}"
|
||||||
|
|
||||||
|
compgen -A function | grep -v "^_" | cat -n
|
||||||
|
|
||||||
|
printf "\nExtended help:\n Each task has comments for general usage\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Start the project.
|
||||||
|
function start {
|
||||||
|
sculpin generate --server --watch "${@}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Include any local tasks.
|
||||||
|
[[ -e run.local ]] && source run.local
|
||||||
|
|
||||||
|
TIMEFORMAT="Task completed in %3lR"
|
||||||
|
time "${@:-help}"
|
||||||
|
|
||||||
|
# vim: ft=bash
|
Loading…
Reference in a new issue