felangel / felangel/mason

feat: Builtin hooks for command line scripting

未关闭
#516 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
enhancement candidate
主要语言
Dart
星标
1.1k
派生
113
PR 合并指标
30 天内没有已合并 PR

描述

**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.

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。