Skip to content

Commit 4b50859

Browse files
committed
Added self processing with pre-rendered templates
1 parent d58afe9 commit 4b50859

File tree

9 files changed

+54
-20
lines changed

9 files changed

+54
-20
lines changed

.github/skeleton.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"package.name": "Polymorphine/Dev",
3+
"repository.name": "polymorphine/dev",
4+
"package.description": "Development tools & coding standard scripts for Polymorphine libraries",
5+
"namespace.src": "Polymorphine\\Dev",
6+
"author.name": "Shudd3r",
7+
"author.email": "q3.shudder@gmail.com"
8+
}

.github/workflows/build.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ jobs:
5050
- name: "Coding standard CodeSniffer checks"
5151
run: |
5252
vendor/bin/phpcs --extensions=php --standard=phpcs.xml.dist src
53-
vendor/bin/phpcs --extensions=php --standard=phpcs.xml.dist --ignore=*/CodeSamples/* tests
53+
vendor/bin/phpcs --extensions=php --standard=phpcs.xml.dist --ignore=tests/CodeSamples/* tests
54+
- name: "Package skeleton validation"
55+
run: php polymorphine-skeleton check
5456
- name: "Run PhpUnit tests with coverage"
5557
run: |
5658
mkdir -p build/logs

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Polymorphine/Dev
2-
[![Latest Stable Version](https://poser.pugx.org/polymorphine/dev/version)](https://packagist.org/packages/polymorphine/dev)
2+
[![Latest stable release](https://poser.pugx.org/polymorphine/dev/version)](https://packagist.org/packages/polymorphine/dev)
33
[![Build status](https://github.com/polymorphine/dev/workflows/build/badge.svg)](https://github.com/polymorphine/dev/actions)
44
[![Coverage status](https://coveralls.io/repos/github/polymorphine/dev/badge.svg?branch=develop)](https://coveralls.io/github/polymorphine/dev?branch=develop)
55
[![PHP version](https://img.shields.io/packagist/php-v/polymorphine/dev.svg)](https://packagist.org/packages/polymorphine/dev)

composer.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@
3535
"test-cs": [
3636
"php-cs-fixer --dry-run -v --config=cs-fixer.php.dist --path-mode=intersection fix src tests",
3737
"phpcs --extensions=php --standard=phpcs.xml.dist src",
38-
"phpcs --extensions=php --standard=phpcs.xml.dist --ignore=*/CodeSamples/* tests"
39-
]
38+
"phpcs --extensions=php --standard=phpcs.xml.dist --ignore=tests/CodeSamples/* tests"
39+
],
40+
"test-php": "phpunit",
41+
"test-skeleton": "@php polymorphine-skeleton check"
4042
}
4143
}

polymorphine-skeleton

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,25 @@ $app->replacement('author.email')
5858
->validate(fn (string $value) => $value === filter_var($value, FILTER_VALIDATE_EMAIL));
5959

6060
$isUpdate = $args->command() === 'update';
61-
$app->template('composer.json')->createWith(function (Contents $contents) use ($isUpdate) {
62-
$baseTemplate = new Template\BasicTemplate($contents->template());
61+
$isSelf = $rootDirectory === __DIR__;
62+
63+
$app->template('composer.json')->createWith(function (Contents $contents) use ($isSelf, $isUpdate) {
64+
$placeholders = ['{$tpl.REQUIRE_DEV}', '{$tpl.PHP_EXEC}', '{$tpl.PHPCS}'];
65+
$replacements = $isSelf
66+
? ['null', '@php ', 'phpcs.xml.dist']
67+
: ['{ "polymorphine/dev": null }', '', 'vendor/polymorphine/dev/phpcs.xml'];
68+
$baseTemplate = new Template\BasicTemplate(str_replace($placeholders, $replacements, $contents->template()));
6369
return new Template\MergedJsonTemplate($baseTemplate, $contents->package(), $isUpdate);
6470
});
6571

72+
$app->template('.github/workflows/build.yml')->createWith(function (Contents $contents) use ($isSelf) {
73+
$placeholders = ['${tpl.PHP_EXEC}', '${tpl.PHPCS}'];
74+
$replacements = $isSelf
75+
? ['php ', 'phpcs.xml.dist']
76+
: ['vendor/bin/', 'vendor/polymorphine/dev/phpcs.xml'];
77+
return new Template\BasicTemplate(str_replace($placeholders, $replacements, $contents->template()));
78+
});
79+
6680
$app->template('LICENSE')->createWith(function (Contents $contents) {
6781
return new Template\BasicTemplate(str_replace('{$tpl.CURRENT_YEAR}', date('Y'), $contents->template()));
6882
});

template/.github/workflows/build.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,14 @@ jobs:
4949
run: vendor/bin/php-cs-fixer --dry-run -v --config=cs-fixer.php.dist --path-mode=intersection fix src tests
5050
- name: "Coding standard CodeSniffer checks"
5151
run: |
52-
vendor/bin/phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml src
53-
vendor/bin/phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml tests
52+
vendor/bin/phpcs --extensions=php --standard=${tpl.PHPCS} src
53+
vendor/bin/phpcs --extensions=php --standard=${tpl.PHPCS} --ignore=tests/CodeSamples/* tests
5454
- name: "Package skeleton validation"
55-
run: vendor/bin/polymorphine-skeleton check
55+
run: ${tpl.PHP_EXEC}polymorphine-skeleton check
5656
- name: "Run PhpUnit tests with coverage"
5757
run: |
5858
mkdir -p build/logs
59-
vendor/bin/phpunit --coverage-clover build/logs/clover.xml
59+
vendor/bin/phpunit{original.content} --coverage-clover build/logs/clover.xml
6060
- name: "Send coverage report to coveralls.io"
6161
run: vendor/bin/php-coveralls -v
6262
env:
@@ -107,4 +107,4 @@ jobs:
107107
- name: "Install highest dependencies"
108108
run: composer update --no-interaction --no-ansi --no-progress --no-suggest --prefer-stable
109109
- name: "Run PhpUnit tests (no coverage)"
110-
run: vendor/bin/phpunit --no-coverage
110+
run: vendor/bin/phpunit{original.content} --no-coverage

template/README.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
# {package.name}
2-
[![Latest Stable Version](https://poser.pugx.org/{package.name.composer}/version)](https://packagist.org/packages/{package.name.composer})
2+
[![Latest stable release](https://poser.pugx.org/{package.name.composer}/version)](https://packagist.org/packages/{package.name.composer})
33
[![Build status](https://github.com/{repository.name}/workflows/build/badge.svg)](https://github.com/{repository.name}/actions)
44
[![Coverage status](https://coveralls.io/repos/github/{repository.name}/badge.svg?branch=develop)](https://coveralls.io/github/{repository.name}?branch=develop)
55
[![PHP version](https://img.shields.io/packagist/php-v/{package.name.composer}.svg)](https://packagist.org/packages/{package.name.composer})
66
[![LICENSE](https://img.shields.io/github/license/{repository.name}.svg?color=blue)](LICENSE)
77
### {package.description}
8+
{original.content>>>
89

9-
{original.content>>>Detailed description (optional)...<<<original.content}
10+
Detailed description (optional)...
1011

12+
<<<original.content}
1113
### Installation with [Composer](https://getcomposer.org/)
1214
```bash
1315
composer require{original.content} {package.name.composer}
1416
```
17+
{original.content>>>
1518

16-
{original.content>>>Your content here...<<<original.content}
19+
Your content here...
20+
21+
<<<original.content}

template/composer.json.sk_file

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"require": {
1717
"php": null
1818
},
19-
"require-dev": null,
19+
"require-dev": {$tpl.REQUIRE_DEV},
2020
"autoload": {
2121
"psr-4": {
2222
"{namespace.src.esc}\\": "src/"
@@ -27,11 +27,14 @@
2727
"{namespace.src.esc}\\Tests\\": "tests/"
2828
}
2929
},
30+
"bin": null,
3031
"scripts": {
3132
"test-cs": [
3233
"php-cs-fixer --dry-run -v --config=cs-fixer.php.dist --path-mode=intersection fix src tests",
33-
"phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml src",
34-
"phpcs --extensions=php --standard=vendor/polymorphine/dev/phpcs.xml tests"
35-
]
34+
"phpcs --extensions=php --standard={$tpl.PHPCS} src",
35+
"phpcs --extensions=php --standard={$tpl.PHPCS} --ignore=tests/CodeSamples/* tests"
36+
],
37+
"test-php": "phpunit",
38+
"test-skeleton": "{$tpl.PHP_EXEC}polymorphine-skeleton check"
3639
}
3740
}

template/cs-fixer.php.dist

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@
1010
*/
1111

1212
use Polymorphine\Dev\FixerFactory;
13-
14-
return FixerFactory::createFor('{package.name}', __DIR__);
13+
{original.content}
14+
return FixerFactory::createFor('{package.name}', __DIR__{original.content});

0 commit comments

Comments
 (0)