From a005d73cde03876f6aeb845edc157d2787ad4abb Mon Sep 17 00:00:00 2001 From: Ciaran McNulty Date: Sat, 5 Feb 2022 16:05:19 +0000 Subject: [PATCH] Remove PHP script doing message class splitting There is a better approach in the Java version, so copying it (and fixing a minor error) --- messages/java/Makefile | 2 +- .../scripts/templates/php.enum.php.erb | 8 +++- .../jsonschema/scripts/templates/php.php.erb | 4 +- messages/php/Makefile | 17 ++++---- messages/php/split_classes.php | 40 ------------------- 5 files changed, 19 insertions(+), 52 deletions(-) delete mode 100644 messages/php/split_classes.php diff --git a/messages/java/Makefile b/messages/java/Makefile index 9422243560..7f981487b1 100644 --- a/messages/java/Makefile +++ b/messages/java/Makefile @@ -5,7 +5,7 @@ JSONSCHEMAS = $(shell find ../jsonschema -name "*.json") .codegen: $(JSONSCHEMAS) ../jsonschema/scripts/codegen.rb ../jsonschema/scripts/templates/java.java.erb ../jsonschema/scripts/templates/java.enum.java.erb ruby ../jsonschema/scripts/codegen.rb Java ../jsonschema java.java.erb > Generated.java.tmp ruby ../jsonschema/scripts/codegen.rb Java ../jsonschema java.enum.java.erb >> Generated.java.tmp - csplit --quiet --prefix=Generated --suffix-format=%02d.java.tmp --elide-empty-files Generated.java.tmp /^.*.java$$/ {*} + csplit --quiet --prefix=Generated --suffix-format=%02d.java.tmp --elide-empty-files Generated.java.tmp /^.*[.]java$$/ {*} rm Generated.java.tmp rm -rf src/generated/java/io/cucumber/messages/types mkdir --parents src/generated/java/io/cucumber/messages/types diff --git a/messages/jsonschema/scripts/templates/php.enum.php.erb b/messages/jsonschema/scripts/templates/php.enum.php.erb index 74030d2822..aa4a477103 100644 --- a/messages/jsonschema/scripts/templates/php.enum.php.erb +++ b/messages/jsonschema/scripts/templates/php.enum.php.erb @@ -1,8 +1,14 @@ <% @enums.each do |enum| -%> +<%= enum[:name].split('\\').join('/') %>.php + namespace Cucumber\Messages\<%= namespaces.slice(0,1)[0] %>; -// CLASS_START <%= enum[:name].split('\\').join('/') %>.php enum <%= namespaces[-1] %> : string { <%- enum[:values].each_with_index do |value, index| -%> diff --git a/messages/jsonschema/scripts/templates/php.php.erb b/messages/jsonschema/scripts/templates/php.php.erb index 0b7101abf5..eca9452be4 100644 --- a/messages/jsonschema/scripts/templates/php.php.erb +++ b/messages/jsonschema/scripts/templates/php.php.erb @@ -1,3 +1,5 @@ +<%- @schemas.sort.each do |key, schema| -%> +<%= class_name(key) %>.php -// CLASS_START <%= class_name(key) %>.php /** * Represents the <%= class_name(key) %> message in Cucumber's message protocol * @see https://github.com/cucumber/common/tree/main/messages#readme diff --git a/messages/php/Makefile b/messages/php/Makefile index a4b2effb9a..13c7b16319 100644 --- a/messages/php/Makefile +++ b/messages/php/Makefile @@ -4,19 +4,20 @@ JSONSCHEMAS = $(shell find ../jsonschema -name "*.json") clean: clean-build -.codegen: build/messages.php +.codegen: $(JSONSCHEMAS) ../jsonschema/scripts/codegen.rb ../jsonschema/scripts/templates/php.php.erb + ruby ../jsonschema/scripts/codegen.rb Php ../jsonschema php.php.erb > build/messages.php + ruby ../jsonschema/scripts/codegen.rb Php ../jsonschema php.enum.php.erb >> build/messages.php + csplit --quiet --prefix=build/Generated --suffix-format=%02d.php.tmp --elide-empty-files build/messages.php /^.*[.]php$$/ {*} + rm build/messages.php + rm -rf src-generated/* + for file in build/Generated**; do mkdir -p src-generated/$$(head -n 1 $$file | sed 's/[^/]*.php$$//'); done + for file in build/Generated**; do tail -n +2 $$file > src-generated/$$(head -n 1 $$file); rm $$file; done + vendor/bin/php-cs-fixer --diff fix src-generated clean-build: rm -rf build/messages.php rm -rf src-generated/* -build/messages.php: $(JSONSCHEMAS) ../jsonschema/scripts/codegen.rb ../jsonschema/scripts/templates/php.php.erb - ruby ../jsonschema/scripts/codegen.rb Php ../jsonschema php.php.erb > $@ - ruby ../jsonschema/scripts/codegen.rb Php ../jsonschema php.enum.php.erb >> $@ - rm -rf src-generated/* - php split_classes.php - vendor/bin/php-cs-fixer --diff fix src-generated - .tested: .cs-fixer .cs-fixer: diff --git a/messages/php/split_classes.php b/messages/php/split_classes.php deleted file mode 100644 index ebc7d5fad2..0000000000 --- a/messages/php/split_classes.php +++ /dev/null @@ -1,40 +0,0 @@ -^.*)/.*#', $filename, $matches)) { - mkdir(__DIR__.'/src-generated/'.$matches['dir'], recursive: true); - } - - file_put_contents(__DIR__ .'/src-generated/'.$filename, $fileContents); - - echo "Written ".__DIR__ .'/src-generated/'.$filename."\n"; - } -}