felangel / felangel/mason

Hooks are too complicated for simple tasks

Open
#311 16 comments 0 reactions 1 assignee Claimed by @felangel View on GitHub
enhancement candidate feedback wanted
Dominant language
Dart
Stars
1.1k
Forks
113
PR merge metrics
No merged PRs in 30d

Description

Hooks are too complicated for simple tasks. Let's say you want to run `task get gen -f` in a directory created by Mason post-gen, and display the output, the most straightforward solution is:

```dart
import 'dart:io';

import 'package:mason/mason.dart';

void run(HookContext context) async {
final workingDirectory = "${Directory.current.path}/packages/{{package}}";

final process = await Process.start(
'task',
['get', 'gen', '-f'],
workingDirectory: workingDirectory,
);

await process.stdout.transform(utf8.decoder).forEach(print);
}
```

Ideally there would be a `hooks` field in brick.yaml, which might look like this

```yaml
name: package
description: Create a package in the /packages directory
version: 0.1.0+1
vars:
package:
type: string
description: Package name
default: my_package
prompt: What do you want to call your package?

hooks:
post-gen: cd packages/{{package}} && task get gen -f
```

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.