From 3461527969929e1a5f2b783b906d6900ac70a75e Mon Sep 17 00:00:00 2001 From: Bilawal Hameed Date: Mon, 3 Feb 2020 14:57:23 +0100 Subject: [PATCH] Add plugin cookiecutter --- .../packages/plugins/_template/cookiecutter.json | 3 +++ .../plugins/_template/hooks/pre_gen_project.py | 14 ++++++++++++++ .../{{ cookiecutter.plugin_name }}/README.md | 1 + .../jest.config.js | 0 .../jest.setup.ts | 0 .../package.json | 0 .../src/index.ts | 0 .../src/plugin.test.ts | 0 .../src/plugin.ts | 0 tools/cookiecutter/Dockerfile | 5 +++++ 10 files changed, 23 insertions(+) create mode 100644 frontend/packages/plugins/_template/cookiecutter.json create mode 100644 frontend/packages/plugins/_template/hooks/pre_gen_project.py create mode 100644 frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/README.md rename frontend/packages/plugins/_template/{ => {{ cookiecutter.plugin_name }}}/jest.config.js (100%) rename frontend/packages/plugins/_template/{ => {{ cookiecutter.plugin_name }}}/jest.setup.ts (100%) rename frontend/packages/plugins/_template/{ => {{ cookiecutter.plugin_name }}}/package.json (100%) rename frontend/packages/plugins/_template/{ => {{ cookiecutter.plugin_name }}}/src/index.ts (100%) rename frontend/packages/plugins/_template/{ => {{ cookiecutter.plugin_name }}}/src/plugin.test.ts (100%) rename frontend/packages/plugins/_template/{ => {{ cookiecutter.plugin_name }}}/src/plugin.ts (100%) create mode 100644 tools/cookiecutter/Dockerfile diff --git a/frontend/packages/plugins/_template/cookiecutter.json b/frontend/packages/plugins/_template/cookiecutter.json new file mode 100644 index 0000000000..01c5830400 --- /dev/null +++ b/frontend/packages/plugins/_template/cookiecutter.json @@ -0,0 +1,3 @@ +{ + "plugin_name": "Complexity" +} diff --git a/frontend/packages/plugins/_template/hooks/pre_gen_project.py b/frontend/packages/plugins/_template/hooks/pre_gen_project.py new file mode 100644 index 0000000000..04f63eb219 --- /dev/null +++ b/frontend/packages/plugins/_template/hooks/pre_gen_project.py @@ -0,0 +1,14 @@ +import re +import sys + + +def validate(name, regex, error_message): + if not re.match(regex, name): + print(error_message % name) + + # exits with status 1 to indicate failure + sys.exit(1) + + +validate('{{ cookiecutter.plugin_name }}', + r'^[a-z-]+$', 'ERROR: %s is not a valid plugin name! Only lowercase letters and hyphens are valid (Examples: my-amazing-plugin, myamazingplugin).') diff --git a/frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/README.md b/frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/README.md new file mode 100644 index 0000000000..9e15988df6 --- /dev/null +++ b/frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/README.md @@ -0,0 +1 @@ +{{cookiecutter.plugin_name}} diff --git a/frontend/packages/plugins/_template/jest.config.js b/frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/jest.config.js similarity index 100% rename from frontend/packages/plugins/_template/jest.config.js rename to frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/jest.config.js diff --git a/frontend/packages/plugins/_template/jest.setup.ts b/frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/jest.setup.ts similarity index 100% rename from frontend/packages/plugins/_template/jest.setup.ts rename to frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/jest.setup.ts diff --git a/frontend/packages/plugins/_template/package.json b/frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/package.json similarity index 100% rename from frontend/packages/plugins/_template/package.json rename to frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/package.json diff --git a/frontend/packages/plugins/_template/src/index.ts b/frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/src/index.ts similarity index 100% rename from frontend/packages/plugins/_template/src/index.ts rename to frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/src/index.ts diff --git a/frontend/packages/plugins/_template/src/plugin.test.ts b/frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/src/plugin.test.ts similarity index 100% rename from frontend/packages/plugins/_template/src/plugin.test.ts rename to frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/src/plugin.test.ts diff --git a/frontend/packages/plugins/_template/src/plugin.ts b/frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/src/plugin.ts similarity index 100% rename from frontend/packages/plugins/_template/src/plugin.ts rename to frontend/packages/plugins/_template/{{ cookiecutter.plugin_name }}/src/plugin.ts diff --git a/tools/cookiecutter/Dockerfile b/tools/cookiecutter/Dockerfile new file mode 100644 index 0000000000..f9a1629247 --- /dev/null +++ b/tools/cookiecutter/Dockerfile @@ -0,0 +1,5 @@ +FROM python:3.8-slim + +RUN pip install cookiecutter==1.7.0 --index-url https://pypi.python.org/simple + +ENTRYPOINT [ "cookiecutter" ] \ No newline at end of file