diff options
Diffstat (limited to 'vendor/github.com/lrstanley')
18 files changed, 543 insertions, 116 deletions
diff --git a/vendor/github.com/lrstanley/girc/.editorconfig b/vendor/github.com/lrstanley/girc/.editorconfig new file mode 100644 index 00000000..a324b1ef --- /dev/null +++ b/vendor/github.com/lrstanley/girc/.editorconfig @@ -0,0 +1,45 @@ +# THIS FILE IS GENERATED! DO NOT EDIT! Maintained by Terraform. +# +# editorconfig.org +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.tf] +indent_size = 2 + +[*.go] +indent_style = tab +indent_size = 4 + +[*.md] +trim_trailing_whitespace = false + +[*.{md,py,sh,yml,yaml}] +max_line_length = 105 + +[*.{yml,yaml,toml}] +indent_size = 2 + +[*.json] +indent_size = 2 +insert_final_newline = ignore + +[*.html] +indent_size = 2 + +[Makefile] +indent_style = tab + +[**.min.js] +indent_style = ignore +insert_final_newline = ignore + +[*.bat] +indent_style = tab diff --git a/vendor/github.com/lrstanley/girc/.golangci.yml b/vendor/github.com/lrstanley/girc/.golangci.yml new file mode 100644 index 00000000..a1fa835e --- /dev/null +++ b/vendor/github.com/lrstanley/girc/.golangci.yml @@ -0,0 +1,37 @@ +# THIS FILE IS GENERATED! DO NOT EDIT! Maintained by Terraform. +run: + tests: False + timeout: 3m + +issues: + max-per-linter: 0 + max-same-issues: 0 + +severity: + default-severity: error + rules: + - linters: + - errcheck + - gocritic + severity: warning + +linters: + enable: + - asciicheck + - exportloopref + - gci + - gocritic + - gofmt + - misspell + +linters-settings: + gocritic: + disabled-checks: + - hugeParam + enabled-tags: + - diagnostic + - opinionated + - performance + - style + govet: + check-shadowing: true diff --git a/vendor/github.com/lrstanley/girc/.travis.yml b/vendor/github.com/lrstanley/girc/.travis.yml deleted file mode 100644 index 96a1bb8a..00000000 --- a/vendor/github.com/lrstanley/girc/.travis.yml +++ /dev/null @@ -1,25 +0,0 @@ -language: go -go: -- 1.11.x -- tip -before_install: -- go get -v golang.org/x/lint/golint -script: -- $HOME/gopath/bin/golint -min_confidence 0.9 -set_exit_status -- GORACE="exitcode=1 halt_on_error=1" go test -v -coverprofile=coverage.txt -race -timeout 3m -count 3 -cpu 1,4 -- go vet -v . -after_success: - - bash <(curl -s https://codecov.io/bash) -branches: - only: - - master -notifications: - irc: - channels: - - irc.byteirc.org#/dev/null - template: - - "%{repository} #%{build_number} %{branch}/%{commit}: %{author} -- %{message} - %{build_url}" - on_success: change - on_failure: change - skip_join: false diff --git a/vendor/github.com/lrstanley/girc/CODE_OF_CONDUCT.md b/vendor/github.com/lrstanley/girc/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..0eb65874 --- /dev/null +++ b/vendor/github.com/lrstanley/girc/CODE_OF_CONDUCT.md @@ -0,0 +1,122 @@ +<!-- THIS FILE IS GENERATED! DO NOT EDIT! Maintained by Terraform. --> +# Code of Conduct + +## Our Pledge :purple_heart: + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +disclosure@liamstanley.io. All complaints will be reviewed and investigated +promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the Contributor Covenant, +version 2.1, available [here](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html). + +For answers to common questions about this code of conduct, see the [FAQ](https://www.contributor-covenant.org/faq). +Translations are available at [translations](https://www.contributor-covenant.org/translations). diff --git a/vendor/github.com/lrstanley/girc/CONTRIBUTING.md b/vendor/github.com/lrstanley/girc/CONTRIBUTING.md index 7913630c..9c237e3c 100644 --- a/vendor/github.com/lrstanley/girc/CONTRIBUTING.md +++ b/vendor/github.com/lrstanley/girc/CONTRIBUTING.md @@ -1,32 +1,106 @@ -# Contributing +<!-- THIS FILE IS GENERATED! DO NOT EDIT! Maintained by Terraform. --> +# :handshake: Contributing -## Issue submission +This document outlines some of the guidelines that we try and adhere to while +working on this project. - * When submitting an issue or bug report, please ensure to provide as much - information as possible, please ensure that you are running on the latest - stable version (tagged), or when using master, provide the specific commit - being used. +> :point_right: **Note**: before participating in the community, please read our +> [Code of Conduct][coc]. +> By interacting with this repository, organization, or community you agree to +> abide by our Code of Conduct. +> +> Additionally, if you contribute **any source code** to this repository, you +> agree to the terms of the [Developer Certificate of Origin][dco]. This helps +> ensure that contributions aren't in violation of 3rd party license terms. + +## :lady_beetle: Issue submission + +When [submitting an issue][issues] or bug report, +please follow these guidelines: + + * Provide as much information as possible (logs, metrics, screenshots, + runtime environment, etc). + * Ensure that you are running on the latest stable version (tagged), or + when using `master`, provide the specific commit being used. * Provide the minimum needed viable source to replicate the problem. -## Pull requests +## :bulb: Feature requests + +When [submitting a feature request][issues], please +follow these guidelines: + + * Does this feature benefit others? or just your usecase? If the latter, + it will likely be declined, unless it has a more broad benefit to others. + * Please include the pros and cons of the feature. + * If possible, describe how the feature would work, and any diagrams/mock + examples of what the feature would look like. + +## :rocket: Pull requests To review what is currently being worked on, or looked into, feel free to head -over to the [issues list](../../issues). - -Below are a few guidelines if you would like to contribute. Keep the code -clean, standardized, and much of the quality should match Golang's standard -library and common idioms. - - * Always test using the latest Go version. - * Always use `gofmt` before committing anything. - * Always have proper documentation before committing. - * Keep the same whitespacing, documentation, and newline format as the - rest of the project. - * Only use 3rd party libraries if necessary. If only a small portion of +over to the [open pull requests][pull-requests] or [issues list][issues]. + +## :raised_back_of_hand: Assistance with discussions + + * Take a look at the [open discussions][discussions], and if you feel like + you'd like to help out other members of the community, it would be much + appreciated! + +## :pushpin: Guidelines + +### :test_tube: Language agnostic + +Below are a few guidelines if you would like to contribute: + + * If the feature is large or the bugfix has potential breaking changes, + please open an issue first to ensure the changes go down the best path. + * If possible, break the changes into smaller PRs. Pull requests should be + focused on a specific feature/fix. + * Pull requests will only be accepted with sufficient documentation + describing the new functionality/fixes. + * Keep the code simple where possible. Code that is smaller/more compact + does not mean better. Don't do magic behind the scenes. + * Use the same formatting/styling/structure as existing code. + * Follow idioms and community-best-practices of the related language, + unless the previous above guidelines override what the community + recommends. + * Always test your changes, both the features/fixes being implemented, but + also in the standard way that a user would use the project (not just + your configuration that fixes your issue). + * Only use 3rd party libraries when necessary. If only a small portion of the library is needed, simply rewrite it within the library to prevent useless imports. - * Also see [golang/go/wiki/CodeReviewComments](https://github.com/golang/go/wiki/CodeReviewComments) -If you would like to assist, and the pull request is quite large and/or it has -the potential of being a breaking change, please open an issue first so it can -be discussed. +### :hamster: Golang + + * See [golang/go/wiki/CodeReviewComments](https://github.com/golang/go/wiki/CodeReviewComments) + * This project uses [golangci-lint](https://golangci-lint.run/) for + Go-related files. This should be available for any editor that supports + `gopls`, however you can also run it locally with `golangci-lint run` + after installing it. + + + + +## :clipboard: References + + * [Open Source: How to Contribute](https://opensource.guide/how-to-contribute/) + * [About pull requests](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) + * [GitHub Docs](https://docs.github.com/) + +## :speech_balloon: What to do next? + + * :old_key: Find a vulnerability? Check out our [Security and Disclosure][security] policy. + * :link: Repository [License][license]. + * [Support][support] + * [Code of Conduct][coc]. + +<!-- definitions --> +[coc]: https://github.com/lrstanley/girc/blob/master/CODE_OF_CONDUCT.md +[dco]: https://developercertificate.org/ +[discussions]: https://github.com/lrstanley/girc/discussions +[issues]: https://github.com/lrstanley/girc/issues/new/choose +[license]: https://github.com/lrstanley/girc/blob/master/LICENSE +[pull-requests]: https://github.com/lrstanley/girc/issues/new/choose +[security]: https://github.com/lrstanley/girc/security/policy +[support]: https://github.com/lrstanley/girc/blob/master/SUPPORT.md diff --git a/vendor/github.com/lrstanley/girc/README.md b/vendor/github.com/lrstanley/girc/README.md index 62f26a76..0a5fba99 100644 --- a/vendor/github.com/lrstanley/girc/README.md +++ b/vendor/github.com/lrstanley/girc/README.md @@ -1,12 +1,49 @@ <p align="center"><a href="https://pkg.go.dev/github.com/lrstanley/girc"><img width="270" src="http://i.imgur.com/DEnyrdB.png"></a></p> -<p align="center">girc, a flexible IRC library for Go</p> +<!-- template:begin:header --> +<!-- do not edit anything in this "template" block, its auto-generated --> +<p align="center">girc -- :bomb: girc is a flexible IRC library for Go :ok_hand:</p> <p align="center"> - <a href="https://github.com/lrstanley/girc/actions"><img src="https://github.com/lrstanley/girc/workflows/test/badge.svg" alt="Test Status"></a> - <a href="https://codecov.io/gh/lrstanley/girc"><img src="https://codecov.io/gh/lrstanley/girc/branch/master/graph/badge.svg" alt="Coverage Status"></a> - <a href="https://pkg.go.dev/github.com/lrstanley/girc"><img src="https://pkg.go.dev/badge/github.com/lrstanley/girc" alt="GoDoc"></a> - <a href="https://goreportcard.com/report/github.com/lrstanley/girc"><img src="https://goreportcard.com/badge/github.com/lrstanley/girc" alt="Go Report Card"></a> - <a href="https://liam.sh/chat"><img src="https://img.shields.io/badge/community-chat%20with%20us-green.svg" alt="Community Chat"></a> + + <a href="https://github.com/lrstanley/girc/actions?query=workflow%3Atest+event%3Apush"> + <img alt="GitHub Workflow Status (test @ master)" src="https://img.shields.io/github/workflow/status/lrstanley/girc/test/master?label=test&style=flat-square&event=push"> + </a> + + <img alt="Code Coverage" src="https://img.shields.io/codecov/c/github/lrstanley/girc/master?style=flat-square"> + + <a href="https://pkg.go.dev/github.com/lrstanley/girc"> + <img alt="Go Documentation" src="https://pkg.go.dev/badge/github.com/lrstanley/girc?style=flat-square"> + </a> + <a href="https://goreportcard.com/report/github.com/lrstanley/girc"> + <img alt="Go Report Card" src="https://goreportcard.com/badge/github.com/lrstanley/girc?style=flat-square"> + </a> + <img alt="Bug reports" src="https://img.shields.io/github/issues/lrstanley/girc/bug?label=issues&style=flat-square"> + <img alt="Feature requests" src="https://img.shields.io/github/issues/lrstanley/girc/enhancement?label=feature%20requests&style=flat-square"> + <a href="https://github.com/lrstanley/girc/pulls"> + <img alt="Open Pull Requests" src="https://img.shields.io/github/issues-pr/lrstanley/girc?style=flat-square"> + </a> + <a href="https://github.com/lrstanley/girc/tags"> + <img alt="Latest Semver Tag" src="https://img.shields.io/github/v/tag/lrstanley/girc?style=flat-square"> + </a> + <img alt="Last commit" src="https://img.shields.io/github/last-commit/lrstanley/girc?style=flat-square"> + <a href="https://github.com/lrstanley/girc/discussions/new?category=q-a"> + <img alt="Ask a Question" src="https://img.shields.io/badge/discussions-ask_a_question!-green?style=flat-square"> + </a> + <a href="https://liam.sh/chat"><img src="https://img.shields.io/badge/discord-bytecord-blue.svg?style=flat-square" alt="Discord Chat"></a> </p> +<!-- template:end:header --> + +<!-- template:begin:toc --> +<!-- do not edit anything in this "template" block, its auto-generated --> +## :link: Table of Contents + + - [Features](#features) + - [Installing](#installing) + - [Examples](#examples) + - [References](#references) + - [Support & Assistance](#raising_hand_man-support-assistance) + - [Contributing](#handshake-contributing) + - [License](#balance_scale-license) +<!-- template:end:toc --> ## Features @@ -48,35 +85,6 @@ usecases/examples/projects which utilize girc: Working on a project and want to add it to the list? Submit a pull request! -## Contributing - -Please review the [CONTRIBUTING](CONTRIBUTING.md) doc for submitting issues/a guide -on submitting pull requests and helping out. - -## License - - Copyright (c) 2016 Liam Stanley <me@liamstanley.io> - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - -girc artwork licensed under [CC 3.0](http://creativecommons.org/licenses/by/3.0/) based on Renee French under Creative Commons 3.0 Attributions. - ## References * [IRCv3: Specification Docs](http://ircv3.net/irc/) @@ -93,3 +101,61 @@ girc artwork licensed under [CC 3.0](http://creativecommons.org/licenses/by/3.0/ * [RFC7194: Default Port for Internet Relay Chat (IRC) via TLS/SSL](https://tools.ietf.org/html/rfc7194) * [RFC4422: Simple Authentication and Security Layer](https://tools.ietf.org/html/rfc4422) ([SASL EXTERNAL](https://tools.ietf.org/html/rfc4422#appendix-A)) * [RFC4616: The PLAIN SASL Mechanism](https://tools.ietf.org/html/rfc4616) + + +<!-- template:begin:support --> +<!-- do not edit anything in this "template" block, its auto-generated --> +## :raising_hand_man: Support & Assistance + + * :heart: Please review the [Code of Conduct](CODE_OF_CONDUCT.md) for + guidelines on ensuring everyone has the best experience interacting with + the community. + * :raising_hand_man: Take a look at the [support](SUPPORT.md) document on + guidelines for tips on how to ask the right questions. + * :lady_beetle: For all features/bugs/issues/questions/etc, [head over here](https://github.com/lrstanley/girc/issues/new/choose). +<!-- template:end:support --> + +<!-- template:begin:contributing --> +<!-- do not edit anything in this "template" block, its auto-generated --> +## :handshake: Contributing + + * :heart: Please review the [Code of Conduct](CODE_OF_CONDUCT.md) for guidelines + on ensuring everyone has the best experience interacting with the + community. + * :clipboard: Please review the [contributing](CONTRIBUTING.md) doc for submitting + issues/a guide on submitting pull requests and helping out. + * :old_key: For anything security related, please review this repositories [security policy](https://github.com/lrstanley/girc/security/policy). +<!-- template:end:contributing --> + +<!-- template:begin:license --> +<!-- do not edit anything in this "template" block, its auto-generated --> +## :balance_scale: License + +``` +MIT License + +Copyright (c) 2016 Liam Stanley <me@liamstanley.io> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +_Also located [here](LICENSE)_ +<!-- template:end:license --> +girc artwork licensed under [CC 3.0](http://creativecommons.org/licenses/by/3.0/) +based on Renee French under Creative Commons 3.0 Attributions. diff --git a/vendor/github.com/lrstanley/girc/SECURITY.md b/vendor/github.com/lrstanley/girc/SECURITY.md new file mode 100644 index 00000000..7c951d0c --- /dev/null +++ b/vendor/github.com/lrstanley/girc/SECURITY.md @@ -0,0 +1,54 @@ +<!-- THIS FILE IS GENERATED! DO NOT EDIT! Maintained by Terraform. --> +# :old_key: Security Policy + +## :heavy_check_mark: Supported Versions + +The following restrictions apply for versions that are still supported in terms of security and bug fixes: + + * :grey_question: Must be using the latest major/minor version. + * :grey_question: Must be using a supported platform for the repository (e.g. OS, browser, etc), and that platform must + be within its supported versions (for example: don't use a legacy or unsupported version of Ubuntu or + Google Chrome). + * :grey_question: Repository must not be archived (unless the vulnerability is critical, and the repository moderately + popular). + * :heavy_check_mark: + +If one of the above doesn't apply to you, feel free to submit an issue and we can discuss the +issue/vulnerability further. + + +## :lady_beetle: Reporting a Vulnerability + +Best method of contact: [GPG :key:](https://github.com/lrstanley.gpg) + + * :speech_balloon: [Discord][chat]: message `/home/liam#0000`. + * :email: Email: `security@liamstanley.io` + +Backup contacts (if I am unresponsive after **48h**): [GPG :key:](https://github.com/FM1337.gpg) + * :speech_balloon: [Discord][chat]: message `Allen#7440`. + * :email: Email: `security@allenlydiard.ca` + +If you feel that this disclosure doesn't include a critical vulnerability and there is no sensitive +information in the disclosure, you don't have to use the GPG key. For all other situations, please +use it. + +### :stopwatch: Vulnerability disclosure expectations + + * :no_bell: We expect you to not share this information with others, unless: + * The maximum timeline for initial response has been exceeded (shown below). + * The maximum resolution time has been exceeded (shown below). + * :mag_right: We expect you to responsibly investigate this vulnerability -- please do not utilize the + vulnerability beyond the initial findings. + * :stopwatch: Initial response within 48h, however, if the primary contact shown above is unavailable, please + use the backup contacts provided. The maximum timeline for an initial response should be within + 7 days. + * :stopwatch: Depending on the severity of the disclosure, resolution time may be anywhere from 24h to 2 + weeks after initial response, though in most cases it will likely be closer to the former. + * If the vulnerability is very low/low in terms of risk, the above timelines **will not apply**. + * :toolbox: Before the release of resolved versions, a [GitHub Security Advisory][advisory-docs]. + will be released on the respective repository. [Browser all advisories here][advisory]. + +<!-- definitions --> +[chat]: https://liam.sh/chat +[advisory]: https://github.com/advisories?query=type%3Areviewed+ecosystem%3Ago +[advisory-docs]: https://docs.github.com/en/code-security/repository-security-advisories/creating-a-repository-security-advisory diff --git a/vendor/github.com/lrstanley/girc/SUPPORT.md b/vendor/github.com/lrstanley/girc/SUPPORT.md new file mode 100644 index 00000000..aca24782 --- /dev/null +++ b/vendor/github.com/lrstanley/girc/SUPPORT.md @@ -0,0 +1,56 @@ +# :raising_hand_man: Support + +This document explains where and how to get help with most of my projects. +Please ensure you read through it thoroughly. + +> :point_right: **Note**: before participating in the community, please read our +> [Code of Conduct][coc]. +> By interacting with this repository, organization, or community you agree to +> abide by its terms. + +## :grey_question: Asking quality questions + +Questions can go to [Github Discussions][discussions] or feel free to join +the Discord [here][chat]. + +Help me help you! Spend time framing questions and add links and resources. +Spending the extra time up front can help save everyone time in the long run. +Here are some tips: + +* Don't fall for the [XY problem][xy]. +* Search to find out if a similar question has been asked or if a similar + issue/bug has been reported. +* Try to define what you need help with: + * Is there something in particular you want to do? + * What problem are you encountering and what steps have you taken to try + and fix it? + * Is there a concept you don't understand? +* Provide sample code, such as a [CodeSandbox][cs] or a simple snippet, if + possible. +* Screenshots can help, but if there's important text such as code or error + messages in them, please also provide those. +* The more time you put into asking your question, the better I and others + can help you. + +## :old_key: Security + +For any security or vulnerability related disclosure, please follow the +guidelines outlined in our [security policy][security]. + +## :handshake: Contributions + +See [`CONTRIBUTING.md`][contributing] on how to contribute. + +<!-- definitions --> +[coc]: https://github.com/lrstanley/girc/blob/master/CODE_OF_CONDUCT.md +[contributing]: https://github.com/lrstanley/girc/blob/master/CONTRIBUTING.md +[discussions]: https://github.com/lrstanley/girc/discussions/categories/q-a +[issues]: https://github.com/lrstanley/girc/issues/new/choose +[license]: https://github.com/lrstanley/girc/blob/master/LICENSE +[pull-requests]: https://github.com/lrstanley/girc/issues/new/choose +[security]: https://github.com/lrstanley/girc/security/policy +[support]: https://github.com/lrstanley/girc/blob/master/SUPPORT.md + +[xy]: https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378 +[chat]: https://liam.sh/chat +[cs]: https://codesandbox.io diff --git a/vendor/github.com/lrstanley/girc/builtin.go b/vendor/github.com/lrstanley/girc/builtin.go index 914b5fab..e60c577a 100644 --- a/vendor/github.com/lrstanley/girc/builtin.go +++ b/vendor/github.com/lrstanley/girc/builtin.go @@ -427,7 +427,7 @@ func handleMOTD(c *Client, e Event) { } // Otherwise, assume we're getting sent the MOTD line-by-line. - if len(c.state.motd) != 0 { + if c.state.motd != "" { c.state.motd += "\n" } c.state.motd += e.Last() diff --git a/vendor/github.com/lrstanley/girc/cap.go b/vendor/github.com/lrstanley/girc/cap.go index dcf53f0e..631b925b 100644 --- a/vendor/github.com/lrstanley/girc/cap.go +++ b/vendor/github.com/lrstanley/girc/cap.go @@ -64,7 +64,7 @@ func possibleCapList(c *Client) map[string][]string { if !c.Config.DisableSTS && !c.Config.SSL { // If fallback supported, and we failed recently, don't try negotiating STS. // ONLY do this fallback if we're expired (primarily useful during the first - // sts negotation). + // sts negotiation). if time.Since(c.state.sts.lastFailed) < 5*time.Minute && !c.Config.DisableSTSFallback { c.debug.Println("skipping strict transport policy negotiation; failed within the last 5 minutes") } else { diff --git a/vendor/github.com/lrstanley/girc/client.go b/vendor/github.com/lrstanley/girc/client.go index 3308b399..db6ec080 100644 --- a/vendor/github.com/lrstanley/girc/client.go +++ b/vendor/github.com/lrstanley/girc/client.go @@ -10,7 +10,6 @@ import ( "errors" "fmt" "io" - "io/ioutil" "log" "net" "os" @@ -268,7 +267,7 @@ func New(config Config) *Client { if envDebug { c.debug = log.New(os.Stderr, "debug:", log.Ltime|log.Lshortfile) } else { - c.debug = log.New(ioutil.Discard, "", 0) + c.debug = log.New(io.Discard, "", 0) } } else { if envDebug { @@ -411,7 +410,7 @@ func (c *Client) execLoop(ctx context.Context, errs chan error, wg *sync.WaitGro // Handles incoming ERROR responses. These are only ever sent // by the server (with the exception that this library may use // them as a lower level way of signalling to disconnect due - // to some other client-choosen error), and should always be + // to some other client-chosen error), and should always be // followed up by the server disconnecting the client. If for // some reason the server doesn't disconnect the client, or // if this library is the source of the error, this should @@ -446,7 +445,7 @@ func (c *Client) DisableTracking() { // Server returns the string representation of host+port pair for the connection. func (c *Client) Server() string { c.state.Lock() - defer c.state.Lock() + defer c.state.Unlock() return c.server() } diff --git a/vendor/github.com/lrstanley/girc/commands.go b/vendor/github.com/lrstanley/girc/commands.go index 2ee0a23a..91a8b96a 100644 --- a/vendor/github.com/lrstanley/girc/commands.go +++ b/vendor/github.com/lrstanley/girc/commands.go @@ -5,9 +5,9 @@ package girc import ( - "strconv" "errors" "fmt" + "strconv" ) // Commands holds a large list of useful methods to interact with the server, @@ -37,7 +37,7 @@ func (cmd *Commands) Join(channels ...string) { continue } - if len(buffer) == 0 { + if buffer == "" { buffer = channels[i] } else { buffer += "," + channels[i] @@ -341,7 +341,7 @@ func (cmd *Commands) List(channels ...string) { continue } - if len(buffer) == 0 { + if buffer == "" { buffer = channels[i] } else { buffer += "," + channels[i] diff --git a/vendor/github.com/lrstanley/girc/constants.go b/vendor/github.com/lrstanley/girc/constants.go index 8f5f91b1..d6058089 100644 --- a/vendor/github.com/lrstanley/girc/constants.go +++ b/vendor/github.com/lrstanley/girc/constants.go @@ -149,7 +149,7 @@ const ( RPL_ENDOFWHOWAS = "369" RPL_LISTSTART = "321" RPL_LIST = "322" - RPL_LISTEND = "323" + RPL_LISTEND = "323" //nolint:misspell // it's correct. RPL_UNIQOPIS = "325" RPL_CHANNELMODEIS = "324" RPL_NOTOPIC = "331" diff --git a/vendor/github.com/lrstanley/girc/ctcp.go b/vendor/github.com/lrstanley/girc/ctcp.go index 637615ef..caa9429b 100644 --- a/vendor/github.com/lrstanley/girc/ctcp.go +++ b/vendor/github.com/lrstanley/girc/ctcp.go @@ -104,7 +104,7 @@ func EncodeCTCP(ctcp *CTCPEvent) (out string) { // EncodeCTCPRaw is much like EncodeCTCP, however accepts a raw command and // string as input. func EncodeCTCPRaw(cmd, text string) (out string) { - if len(cmd) <= 0 { + if cmd == "" { return "" } diff --git a/vendor/github.com/lrstanley/girc/event.go b/vendor/github.com/lrstanley/girc/event.go index 3eb187f9..0ca06976 100644 --- a/vendor/github.com/lrstanley/girc/event.go +++ b/vendor/github.com/lrstanley/girc/event.go @@ -283,7 +283,6 @@ func (e *Event) Bytes() []byte { // Space separated list of arguments. if len(e.Params) > 0 { - // buffer.WriteByte(eventSpace) for i := 0; i < len(e.Params); i++ { if i == len(e.Params)-1 && (strings.Contains(e.Params[i], " ") || strings.HasPrefix(e.Params[i], ":") || e.Params[i] == "") { buffer.WriteString(string(eventSpace) + string(messagePrefix) + e.Params[i]) @@ -621,7 +620,7 @@ func (s *Source) IsHostmask() bool { // IsServer returns true if this source looks like a server name. func (s *Source) IsServer() bool { - return len(s.Ident) <= 0 && len(s.Host) <= 0 + return s.Ident == "" && s.Host == "" } // writeTo is an utility function to write the source to the bytes.Buffer diff --git a/vendor/github.com/lrstanley/girc/format.go b/vendor/github.com/lrstanley/girc/format.go index e1efb756..85e3e387 100644 --- a/vendor/github.com/lrstanley/girc/format.go +++ b/vendor/github.com/lrstanley/girc/format.go @@ -127,10 +127,10 @@ func Fmt(text string) string { // See Fmt() for more information. func TrimFmt(text string) string { for color := range fmtColors { - text = strings.Replace(text, string(fmtOpenChar)+color+string(fmtCloseChar), "", -1) + text = strings.ReplaceAll(text, string(fmtOpenChar)+color+string(fmtCloseChar), "") } for code := range fmtCodes { - text = strings.Replace(text, string(fmtOpenChar)+code+string(fmtCloseChar), "", -1) + text = strings.ReplaceAll(text, string(fmtOpenChar)+code+string(fmtCloseChar), "") } return text @@ -138,7 +138,7 @@ func TrimFmt(text string) string { // This is really the only fastest way of doing this (marginally better than // actually trying to parse it manually.) -var reStripColor = regexp.MustCompile(`\x03([019]?[0-9](,[019]?[0-9])?)?`) +var reStripColor = regexp.MustCompile(`\x03([019]?\d(,[019]?\d)?)?`) // StripRaw tries to strip all ASCII format codes that are used for IRC. // Primarily, foreground/background colors, and other control bytes like @@ -148,7 +148,7 @@ func StripRaw(text string) string { text = reStripColor.ReplaceAllString(text, "") for _, code := range fmtCodes { - text = strings.Replace(text, code, "", -1) + text = strings.ReplaceAll(text, code, "") } return text @@ -219,7 +219,7 @@ func IsValidChannel(channel string) bool { // digit = 0x30-0x39 // special = 0x5B-0x60 / 0x7B-0x7D func IsValidNick(nick string) bool { - if len(nick) <= 0 { + if nick == "" { return false } @@ -256,7 +256,7 @@ func IsValidNick(nick string) bool { // user = 1*( %x01-09 / %x0B-0C / %x0E-1F / %x21-3F / %x41-FF ) // ; any octet except NUL, CR, LF, " " and "@" func IsValidUser(name string) bool { - if len(name) <= 0 { + if name == "" { return false } diff --git a/vendor/github.com/lrstanley/girc/handler.go b/vendor/github.com/lrstanley/girc/handler.go index 712886b3..55fd4e9c 100644 --- a/vendor/github.com/lrstanley/girc/handler.go +++ b/vendor/github.com/lrstanley/girc/handler.go @@ -287,7 +287,7 @@ func (c *Caller) Remove(cuid string) (success bool) { // on your own. func (c *Caller) remove(cuid string) (success bool) { cmd, uid := c.cuidToID(cuid) - if len(cmd) == 0 || len(uid) == 0 { + if cmd == "" || uid == "" { return false } diff --git a/vendor/github.com/lrstanley/girc/modes.go b/vendor/github.com/lrstanley/girc/modes.go index 864df71f..35ff103a 100644 --- a/vendor/github.com/lrstanley/girc/modes.go +++ b/vendor/github.com/lrstanley/girc/modes.go @@ -34,7 +34,7 @@ func (c *CMode) Short() string { // String returns a string representation of a mode, including optional // arguments. E.g. "+b user*!ident@host.*.com" func (c *CMode) String() string { - if len(c.args) == 0 { + if c.args == "" { return c.Short() } @@ -106,7 +106,7 @@ func (c *CModes) HasMode(mode string) bool { func (c *CModes) Get(mode string) (args string, ok bool) { for i := 0; i < len(c.modes); i++ { if string(c.modes[i].name) == mode { - if len(c.modes[i].args) == 0 { + if c.modes[i].args == "" { return "", false } @@ -157,7 +157,7 @@ func (c *CModes) hasArg(set bool, mode byte) (hasArgs, isSetting bool) { // For example, the latter would mean applying an incoming MODE with the modes // stored for a channel. func (c *CModes) Apply(modes []CMode) { - var new []CMode + var newModes []CMode for j := 0; j < len(c.modes); j++ { isin := false @@ -166,14 +166,14 @@ func (c *CModes) Apply(modes []CMode) { continue } if c.modes[j].name == modes[i].name && modes[i].add { - new = append(new, modes[i]) + newModes = append(newModes, modes[i]) isin = true break } } if !isin { - new = append(new, c.modes[j]) + newModes = append(newModes, c.modes[j]) } } @@ -183,19 +183,19 @@ func (c *CModes) Apply(modes []CMode) { } isin := false - for j := 0; j < len(new); j++ { - if modes[i].name == new[j].name { + for j := 0; j < len(newModes); j++ { + if modes[i].name == newModes[j].name { isin = true break } } if !isin { - new = append(new, modes[i]) + newModes = append(newModes, modes[i]) } } - c.modes = new + c.modes = newModes } // Parse parses a set of flags and args, returning the necessary list of @@ -221,7 +221,7 @@ func (c *CModes) Parse(flags string, args []string) (out []CMode) { } hasArgs, isSetting := c.hasArg(add, flags[i]) - if hasArgs && len(args) >= argCount+1 { + if hasArgs && len(args) > argCount { mode.args = args[argCount] argCount++ } @@ -351,7 +351,7 @@ func handleMODE(c *Client, e Event) { // Loop through and update users modes as necessary. for i := 0; i < len(modes); i++ { - if modes[i].setting || len(modes[i].args) == 0 { + if modes[i].setting || modes[i].args == "" { continue } @@ -493,8 +493,8 @@ func (m *Perms) reset() { // set translates raw prefix characters into proper permissions. Only // use this function when you have a session lock. -func (m *Perms) set(prefix string, append bool) { - if !append { +func (m *Perms) set(prefix string, add bool) { + if !add { m.reset() } |