Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cage1016/ak
A generator for golang alfred workflow that helps you create boilerplate code.
https://github.com/cage1016/ak
alfred awgo generator golang
Last synced: about 2 months ago
JSON representation
A generator for golang alfred workflow that helps you create boilerplate code.
- Host: GitHub
- URL: https://github.com/cage1016/ak
- Owner: cage1016
- License: mit
- Created: 2022-08-02T14:32:26.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-26T08:38:23.000Z (7 months ago)
- Last Synced: 2024-10-27T13:01:34.759Z (3 months ago)
- Topics: alfred, awgo, generator, golang
- Language: Go
- Homepage: https://kaichu.io/posts/golang-alfred-workflow-generator-ak/
- Size: 192 KB
- Stars: 9
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Go base Alfred workflow generator
![GitHub](https://img.shields.io/github/license/cage1016/ak)
A generator for golang Alfred workflow that helps you create boilerplate code.
## Why ?
As a Gopher, i want to create a Golang base workflow quickly than sketching it out by hand. I also want to be able to share my way of doing things with others.
## Features
1. Create a new workflow with three type of patterns:
1. Simple workflow with Alfred variables and arguments
2. leverage [deanishe/awgo](https://github.com/deanishe/awgo) with Alfred items feedback
3. leverage [deanishe/awgo](https://github.com/deanishe/awgo) and [spf13/cobra](https://github.com/spf13/cobra) with Alfred items feedback
2. Workflow development
1. Build the workflow executable and output it into the `.workflow` subdirectory
2. Display information about the workflow
3. Link the `.workflow` subdirectory into Alfred's preferences directory, installing it.
4. Package the workflow for distribution locally
5. Unlink the `.workflow` subdirectory from Alfred's preferences directory, uninstalling it.
3. Additional patterns
1. Add Github Action release to project. `-s` enable code sign and notarize
1. Add license to project
2. Add Makefile to project
4. Support `arm64` & `amd64`## Installation
With Go 1.20 or higher:
```bash
go install github.com/cage1016/ak@latest
```## Running the generator
```bash
A generator for awgo that helps you create boilerplate codeUsage:
ak [flags]
ak [command]Available Commands:
add Used to add additional component to project
alfred Used to manage Go-based Alfred workflows
completion Generate the autocompletion script for the specified shell
help Help about any command
init Initiates a workflow
new Used to create workflow packageFlags:
-d, --debug If you want to se the debug logs.
--folder string If you want to specify the base folder of the workflow.
-f, --force Force overwrite existing files without asking.
-h, --help help for ak
--testing If testing the generator.
-v, --version version for akUse "ak [command] --help" for more information about a command.
```1. `ak init` to create a new workflow
2. revise `ak.json` as your workflow's information```json
{
"go_mod_package": "github.com/xxx/ak-test",
"workflow": {
"folder": ".workflow",
"name": "Ak Test",
"description": "",
"category_comment": "category: Tools, Internet, Productivity, Uncategorised",
"category": "",
"bundle_id": "com.xxx.aktest",
"created_by": "",
"web_address": "https://github.com/xxx/ak-test",
"version": "0.1.0"
},
"update": {
"github_repo": "https://github.com/xxx/ak-test"
},
"license": {
"type_comment": "support license https://github.com/nishanths/license",
"type": "mit",
"year": "",
"name": ""
},
"gon": {
"application_identity": "Developer ID Application: KAI CHU CHUNG"
}
}
```4. Create one of three different workflow patterns
1. `ak new cmd` create cobra based workflow
5. Add additional components to the workflow
1. `ak add githubAction` add Github Action release to project
1. `-s` to enable code sign and notarize
2. `ak add license` add license to project
3. `ak add makefile` add Makefile to project
6. Workflow development
1. `make build` to build the workflow executable and output it into the `.workflow` subdirectory
2. `make info` to display information about the workflow
3. `make link` to link the `.workflow` subdirectory into Alfred's preferences directory, installing it.
4. `make package` to package the workflow for distribution locally
5. `make unlink` to unlink the `.workflow` subdirectory from Alfred's preferences directory, uninstalling it.## Examples
1. [ak/_example](https://github.com/cage1016/ak/tree/master/_example)
## License
This project is licensed under the MIT License. See [LICENSE](LICENSE) for details.