felangel / felangel/mason

feat: Builtin hooks for command line scripting

Open
#516 1 comment 0 reactions 0 assignees View on GitHub
enhancement candidate
Dominant language
Dart
Stars
1.1k
Forks
113
PR merge metrics
No merged PRs in 30d

Description

**Description**

In the original custom scripts (hooks) feature #149, the proposal to add scripts listed two really good use cases -- running `dart fix --apply` or `flutter pub get` after a block executes. I'm wondering if a hook could be baked in to the brick's config that executes command line statements before or after a brick executes.

For example, right now I believe I have to add hooks to my brick just to run `dart fix --apply`, which I do for most everything.

```dart
Future run(HookContext context) async {
final String path = context.vars['feature_name'];
var result = await Process.run('dart', ['fix', '--apply', path], runInShell: true);
context.logger.info(result.stdout.toString());
}
```

It might be convenient to be able to run these common scripts like this:

```yaml
name: my_brick

vars:
feature_name:
type: string
description: The feature name
prompt: What is the feature name?

post-scripts:
- dart fix --apply {{{feature_name}}}
- flutter pub run build_runner build --delete-conflicting-outputs
- echo "Be sure to ..."
```

**Additional Context**
Perhaps the cross platform nature of blocks might make scripts difficult to run, but I still face that if I use a hook and `Process.run()`. Not sure if the lack of cross-platform scripting is a blocker or a potential footgun.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.