mirror of
https://github.com/opdavies/build-configs.git
synced 2025-02-02 05:47:32 +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();
|
||||
|
||||
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)):
|
||||
$filesToGenerate = collect([
|
||||
new TemplateFile(data: 'fractal/.gitignore', name: '.gitignore'),
|
||||
|
|
|
@ -243,7 +243,7 @@ final class ConfigDto
|
|||
#[Assert\Type('string')]
|
||||
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;
|
||||
|
||||
#[Assert\Collection([
|
||||
|
|
|
@ -10,6 +10,7 @@ enum ProjectType: string
|
|||
case Fractal = 'fractal';
|
||||
case Laravel = 'laravel';
|
||||
case PHPLibrary = 'php-library';
|
||||
case Sculpin = 'sculpin';
|
||||
case Symfony = 'symfony';
|
||||
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