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