diff --git a/apps/wyatt_brick_template/README.md b/apps/wyatt_brick_template/README.md new file mode 100644 index 0000000..886e93e --- /dev/null +++ b/apps/wyatt_brick_template/README.md @@ -0,0 +1,23 @@ + + +# Wyatt - Brick Template + +> Brickception + +Generated with `Brickgen`... to generate other `Brickgen` bricks. \ No newline at end of file diff --git a/apps/wyatt_brick_template/brickgen.yaml b/apps/wyatt_brick_template/brickgen.yaml new file mode 100644 index 0000000..11abecd --- /dev/null +++ b/apps/wyatt_brick_template/brickgen.yaml @@ -0,0 +1,36 @@ +name: wyatt_brick_template +description: Template to create a compilable project that can be converted with Brickgen + +version: 0.1.0 + +vars: + brick_name: + compilable: brick_name + type: string + description: Name of the brick + default: brick_name + prompt: "What is the brick name?" + + brick_description: + compilable: brick_description + type: string + description: Description of the brick + default: brick_description + prompt: "What is the brick description?" + + hooks: + type: boolean + description: Enables hooks for this brick. + default: false + prompt: "Do you want to enable `hooks` for this brick ?" + +brickgen: + path_to_brickify: wyatt_brick_template + hooks: true + ignore: + - .env + boolean_file_system: + hooks: + folders: + on_true: + - hooks \ No newline at end of file diff --git a/apps/wyatt_brick_template/hooks/post_gen.dart b/apps/wyatt_brick_template/hooks/post_gen.dart new file mode 100644 index 0000000..398a858 --- /dev/null +++ b/apps/wyatt_brick_template/hooks/post_gen.dart @@ -0,0 +1,39 @@ +// Copyright (C) 2022 WYATT GROUP +// Please see the AUTHORS file for details. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +import 'dart:io'; + +import 'package:mason/mason.dart'; + +void removeGitKeepFiles(String targetPath) { + if (!FileSystemEntity.isDirectorySync(targetPath)) { + throw ArgumentError('Target must be a directory', 'targetPath'); + } + + Directory(targetPath) + .listSync(recursive: true) + .whereType() + .forEach((file) { + if (file.path.contains('.gitkeep')) { + file.deleteSync(recursive: true); + } + }); +} + +Future run(HookContext context) async { + final workingDirectory = Directory.current.path; + removeGitKeepFiles(workingDirectory); +} diff --git a/apps/wyatt_brick_template/hooks/pubspec.yaml b/apps/wyatt_brick_template/hooks/pubspec.yaml new file mode 100644 index 0000000..454f6df --- /dev/null +++ b/apps/wyatt_brick_template/hooks/pubspec.yaml @@ -0,0 +1,7 @@ +name: hooks + +environment: + sdk: ">=2.18.0 <3.0.0" + +dependencies: + mason: any \ No newline at end of file diff --git a/apps/wyatt_brick_template/wyatt_brick_template/brick_name/README.md b/apps/wyatt_brick_template/wyatt_brick_template/brick_name/README.md new file mode 100644 index 0000000..8c74374 --- /dev/null +++ b/apps/wyatt_brick_template/wyatt_brick_template/brick_name/README.md @@ -0,0 +1,3 @@ +# display_name + +Brick generated with `Brickgen`. \ No newline at end of file diff --git a/apps/wyatt_brick_template/wyatt_brick_template/brick_name/android/android.xml b/apps/wyatt_brick_template/wyatt_brick_template/brick_name/android/android.xml new file mode 100644 index 0000000..7a55e0f --- /dev/null +++ b/apps/wyatt_brick_template/wyatt_brick_template/brick_name/android/android.xml @@ -0,0 +1,18 @@ + + diff --git a/apps/wyatt_brick_template/wyatt_brick_template/brick_name/bin/cli.dart b/apps/wyatt_brick_template/wyatt_brick_template/brick_name/bin/cli.dart new file mode 100644 index 0000000..db18bca --- /dev/null +++ b/apps/wyatt_brick_template/wyatt_brick_template/brick_name/bin/cli.dart @@ -0,0 +1,16 @@ +// Copyright (C) 2023 WYATT GROUP +// Please see the AUTHORS file for details. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + diff --git a/apps/wyatt_brick_template/wyatt_brick_template/brick_name/ios/ios.plist b/apps/wyatt_brick_template/wyatt_brick_template/brick_name/ios/ios.plist new file mode 100644 index 0000000..7a55e0f --- /dev/null +++ b/apps/wyatt_brick_template/wyatt_brick_template/brick_name/ios/ios.plist @@ -0,0 +1,18 @@ + + diff --git a/apps/wyatt_brick_template/wyatt_brick_template/brickgen.yaml b/apps/wyatt_brick_template/wyatt_brick_template/brickgen.yaml new file mode 100644 index 0000000..b41b856 --- /dev/null +++ b/apps/wyatt_brick_template/wyatt_brick_template/brickgen.yaml @@ -0,0 +1,39 @@ +name: brick_name +description: brick_description + +version: 0.1.0 + +vars: + display_name: + compilable: display_name + type: string + description: The display name + default: Display Name + prompt: "What is the display name?" + + product_name: + compilable: product_name + type: string + description: The product name + default: product_name + prompt: "What is the product name?" + + flutter: + type: boolean + description: If this app is a Flutter or Dart application. + default: false + prompt: "Is this a Flutter appplication ?" + +brickgen: + path_to_brickify: brick_name + hooks: true + ignore: + - .env + boolean_file_system: + flutter: + folders: + on_true: + - android + - ios + on_false: + - bin \ No newline at end of file diff --git a/apps/wyatt_brick_template/wyatt_brick_template/hooks/post_gen.dart b/apps/wyatt_brick_template/wyatt_brick_template/hooks/post_gen.dart new file mode 100644 index 0000000..398a858 --- /dev/null +++ b/apps/wyatt_brick_template/wyatt_brick_template/hooks/post_gen.dart @@ -0,0 +1,39 @@ +// Copyright (C) 2022 WYATT GROUP +// Please see the AUTHORS file for details. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +import 'dart:io'; + +import 'package:mason/mason.dart'; + +void removeGitKeepFiles(String targetPath) { + if (!FileSystemEntity.isDirectorySync(targetPath)) { + throw ArgumentError('Target must be a directory', 'targetPath'); + } + + Directory(targetPath) + .listSync(recursive: true) + .whereType() + .forEach((file) { + if (file.path.contains('.gitkeep')) { + file.deleteSync(recursive: true); + } + }); +} + +Future run(HookContext context) async { + final workingDirectory = Directory.current.path; + removeGitKeepFiles(workingDirectory); +} diff --git a/apps/wyatt_brick_template/wyatt_brick_template/hooks/pubspec.yaml b/apps/wyatt_brick_template/wyatt_brick_template/hooks/pubspec.yaml new file mode 100644 index 0000000..454f6df --- /dev/null +++ b/apps/wyatt_brick_template/wyatt_brick_template/hooks/pubspec.yaml @@ -0,0 +1,7 @@ +name: hooks + +environment: + sdk: ">=2.18.0 <3.0.0" + +dependencies: + mason: any \ No newline at end of file diff --git a/bricks/wyatt_brick_template/__brick__/brickgen.yaml b/bricks/wyatt_brick_template/__brick__/brickgen.yaml new file mode 100644 index 0000000..0bf47a3 --- /dev/null +++ b/bricks/wyatt_brick_template/__brick__/brickgen.yaml @@ -0,0 +1,39 @@ +name: {{#snakeCase}}{{brick_name}}{{/snakeCase}} +description: {{#snakeCase}}{{brick_description}}{{/snakeCase}} + +version: 0.1.0 + +vars: + display_name: + compilable: display_name + type: string + description: The display name + default: Display Name + prompt: "What is the display name?" + + product_name: + compilable: product_name + type: string + description: The product name + default: product_name + prompt: "What is the product name?" + + flutter: + type: boolean + description: If this app is a Flutter or Dart application. + default: false + prompt: "Is this a Flutter appplication ?" + +brickgen: + path_to_brickify: {{#snakeCase}}{{brick_name}}{{/snakeCase}} + hooks: true + ignore: + - .env + boolean_file_system: + flutter: + folders: + on_true: + - android + - ios + on_false: + - bin \ No newline at end of file diff --git a/bricks/wyatt_brick_template/__brick__/{{#hooks}}hooks{{/hooks}}/post_gen.dart b/bricks/wyatt_brick_template/__brick__/{{#hooks}}hooks{{/hooks}}/post_gen.dart new file mode 100644 index 0000000..398a858 --- /dev/null +++ b/bricks/wyatt_brick_template/__brick__/{{#hooks}}hooks{{/hooks}}/post_gen.dart @@ -0,0 +1,39 @@ +// Copyright (C) 2022 WYATT GROUP +// Please see the AUTHORS file for details. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +import 'dart:io'; + +import 'package:mason/mason.dart'; + +void removeGitKeepFiles(String targetPath) { + if (!FileSystemEntity.isDirectorySync(targetPath)) { + throw ArgumentError('Target must be a directory', 'targetPath'); + } + + Directory(targetPath) + .listSync(recursive: true) + .whereType() + .forEach((file) { + if (file.path.contains('.gitkeep')) { + file.deleteSync(recursive: true); + } + }); +} + +Future run(HookContext context) async { + final workingDirectory = Directory.current.path; + removeGitKeepFiles(workingDirectory); +} diff --git a/bricks/wyatt_brick_template/__brick__/{{#hooks}}hooks{{/hooks}}/pubspec.yaml b/bricks/wyatt_brick_template/__brick__/{{#hooks}}hooks{{/hooks}}/pubspec.yaml new file mode 100644 index 0000000..454f6df --- /dev/null +++ b/bricks/wyatt_brick_template/__brick__/{{#hooks}}hooks{{/hooks}}/pubspec.yaml @@ -0,0 +1,7 @@ +name: hooks + +environment: + sdk: ">=2.18.0 <3.0.0" + +dependencies: + mason: any \ No newline at end of file diff --git a/bricks/wyatt_brick_template/__brick__/{{brick_name.snakeCase()}}/README.md b/bricks/wyatt_brick_template/__brick__/{{brick_name.snakeCase()}}/README.md new file mode 100644 index 0000000..8c74374 --- /dev/null +++ b/bricks/wyatt_brick_template/__brick__/{{brick_name.snakeCase()}}/README.md @@ -0,0 +1,3 @@ +# display_name + +Brick generated with `Brickgen`. \ No newline at end of file diff --git a/bricks/wyatt_brick_template/__brick__/{{brick_name.snakeCase()}}/android/android.xml b/bricks/wyatt_brick_template/__brick__/{{brick_name.snakeCase()}}/android/android.xml new file mode 100644 index 0000000..7a55e0f --- /dev/null +++ b/bricks/wyatt_brick_template/__brick__/{{brick_name.snakeCase()}}/android/android.xml @@ -0,0 +1,18 @@ + + diff --git a/bricks/wyatt_brick_template/__brick__/{{brick_name.snakeCase()}}/bin/cli.dart b/bricks/wyatt_brick_template/__brick__/{{brick_name.snakeCase()}}/bin/cli.dart new file mode 100644 index 0000000..db18bca --- /dev/null +++ b/bricks/wyatt_brick_template/__brick__/{{brick_name.snakeCase()}}/bin/cli.dart @@ -0,0 +1,16 @@ +// Copyright (C) 2023 WYATT GROUP +// Please see the AUTHORS file for details. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + diff --git a/bricks/wyatt_brick_template/__brick__/{{brick_name.snakeCase()}}/ios/ios.plist b/bricks/wyatt_brick_template/__brick__/{{brick_name.snakeCase()}}/ios/ios.plist new file mode 100644 index 0000000..7a55e0f --- /dev/null +++ b/bricks/wyatt_brick_template/__brick__/{{brick_name.snakeCase()}}/ios/ios.plist @@ -0,0 +1,18 @@ + + diff --git a/bricks/wyatt_brick_template/brick.yaml b/bricks/wyatt_brick_template/brick.yaml new file mode 100644 index 0000000..268cc2e --- /dev/null +++ b/bricks/wyatt_brick_template/brick.yaml @@ -0,0 +1,24 @@ +name: wyatt_brick_template +description: Template to create a compilable project that can be converted with Brickgen + +version: 0.1.0 + +vars: + brick_name: + type: string + description: Name of the brick + default: brick_name + prompt: What is the brick name? + + brick_description: + type: string + description: Description of the brick + default: brick_description + prompt: What is the brick description? + + hooks: + type: boolean + description: Enables hooks for this brick. + default: false + prompt: Do you want to enable `hooks` for this brick ? + diff --git a/bricks/wyatt_brick_template/hooks/post_gen.dart b/bricks/wyatt_brick_template/hooks/post_gen.dart new file mode 100644 index 0000000..398a858 --- /dev/null +++ b/bricks/wyatt_brick_template/hooks/post_gen.dart @@ -0,0 +1,39 @@ +// Copyright (C) 2022 WYATT GROUP +// Please see the AUTHORS file for details. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +import 'dart:io'; + +import 'package:mason/mason.dart'; + +void removeGitKeepFiles(String targetPath) { + if (!FileSystemEntity.isDirectorySync(targetPath)) { + throw ArgumentError('Target must be a directory', 'targetPath'); + } + + Directory(targetPath) + .listSync(recursive: true) + .whereType() + .forEach((file) { + if (file.path.contains('.gitkeep')) { + file.deleteSync(recursive: true); + } + }); +} + +Future run(HookContext context) async { + final workingDirectory = Directory.current.path; + removeGitKeepFiles(workingDirectory); +} diff --git a/bricks/wyatt_brick_template/hooks/pubspec.yaml b/bricks/wyatt_brick_template/hooks/pubspec.yaml new file mode 100644 index 0000000..454f6df --- /dev/null +++ b/bricks/wyatt_brick_template/hooks/pubspec.yaml @@ -0,0 +1,7 @@ +name: hooks + +environment: + sdk: ">=2.18.0 <3.0.0" + +dependencies: + mason: any \ No newline at end of file