feat: add pastebin

main
sudo pacman -Syu 2023-07-01 01:06:13 +07:00
parent 9ce95d7532
commit 0b7dacbc41
4 changed files with 516 additions and 0 deletions

View File

@ -0,0 +1,281 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.2.0/github-markdown-dark.min.css"
/>
<title>haunt98 posts</title>
</head>
<style>
.markdown-body {
box-sizing: border-box;
min-width: 200px;
max-width: 980px;
margin: 0 auto;
padding: 45px;
}
@media (max-width: 767px) {
.markdown-body {
padding: 15px;
}
}
</style>
<body class="markdown-body">
<div><a href="index.html">Index</a></div>
<h1>
<a
id="user-content-throw-away-pastebin"
class="anchor"
aria-hidden="true"
href="#throw-away-pastebin"
><span aria-hidden="true" class="octicon octicon-link"></span></a
>Throw away pastebin
</h1>
<p>Just a place to throw away some text.</p>
<h2>
<a
id="user-content-github-actions"
class="anchor"
aria-hidden="true"
href="#github-actions"
><span aria-hidden="true" class="octicon octicon-link"></span></a
>GitHub Actions
</h2>
<p><code>dependabot.yml</code>:</p>
<div class="highlight highlight-source-yaml">
<pre><span class="pl-ent">version</span>: <span class="pl-c1">2</span>
<span class="pl-ent">updates</span>:
- <span class="pl-ent">package-ecosystem</span>: <span class="pl-s"><span class="pl-pds">"</span>gomod<span class="pl-pds">"</span></span>
<span class="pl-ent">directory</span>: <span class="pl-s"><span class="pl-pds">"</span>/<span class="pl-pds">"</span></span>
<span class="pl-ent">schedule</span>:
<span class="pl-ent">interval</span>: <span class="pl-s"><span class="pl-pds">"</span>daily<span class="pl-pds">"</span></span>
- <span class="pl-ent">package-ecosystem</span>: <span class="pl-s"><span class="pl-pds">"</span>github-actions<span class="pl-pds">"</span></span>
<span class="pl-ent">directory</span>: <span class="pl-s"><span class="pl-pds">"</span>/<span class="pl-pds">"</span></span>
<span class="pl-ent">schedule</span>:
<span class="pl-ent">interval</span>: <span class="pl-s"><span class="pl-pds">"</span>daily<span class="pl-pds">"</span></span></pre>
</div>
<p><code>go.yml</code>:</p>
<div class="highlight highlight-source-yaml">
<pre><span class="pl-ent">name</span>: <span class="pl-s">Go</span>
<span class="pl-ent">on</span>:
<span class="pl-ent">push</span>:
<span class="pl-ent">branches</span>:
- <span class="pl-s">main</span>
<span class="pl-ent">paths</span>:
- <span class="pl-s"><span class="pl-pds">"</span>**.go<span class="pl-pds">"</span></span>
- <span class="pl-s"><span class="pl-pds">"</span>go.mod<span class="pl-pds">"</span></span>
- <span class="pl-s"><span class="pl-pds">"</span>go.sum<span class="pl-pds">"</span></span>
<span class="pl-ent">pull_request</span>:
<span class="pl-ent">branches</span>:
- <span class="pl-s">main</span>
<span class="pl-ent">paths</span>:
- <span class="pl-s"><span class="pl-pds">"</span>**.go<span class="pl-pds">"</span></span>
- <span class="pl-s"><span class="pl-pds">"</span>go.mod<span class="pl-pds">"</span></span>
- <span class="pl-s"><span class="pl-pds">"</span>go.sum<span class="pl-pds">"</span></span>
<span class="pl-ent">concurrency</span>:
<span class="pl-ent">group</span>: <span class="pl-s">${{ github.workflow }}-${{ github.ref }}</span>
<span class="pl-ent">cancel-in-progress</span>: <span class="pl-c1">true</span>
<span class="pl-ent">jobs</span>:
<span class="pl-ent">test</span>:
<span class="pl-ent">name</span>: <span class="pl-s">Test</span>
<span class="pl-ent">runs-on</span>: <span class="pl-s">ubuntu-latest</span>
<span class="pl-ent">steps</span>:
- <span class="pl-ent">uses</span>: <span class="pl-s">actions/checkout@v3</span>
- <span class="pl-ent">uses</span>: <span class="pl-s">actions/setup-go@v4</span>
<span class="pl-ent">with</span>:
<span class="pl-ent">go-version</span>: <span class="pl-s"><span class="pl-pds">"</span>stable<span class="pl-pds">"</span></span>
- <span class="pl-ent">run</span>: <span class="pl-s">go test -race -failfast ./...</span>
<span class="pl-ent">build</span>:
<span class="pl-ent">name</span>: <span class="pl-s">Build</span>
<span class="pl-ent">runs-on</span>: <span class="pl-s">${{ matrix.os }}</span>
<span class="pl-ent">strategy</span>:
<span class="pl-ent">matrix</span>:
<span class="pl-ent">os</span>: <span class="pl-s">[ubuntu-latest, macos-latest, windows-latest]</span>
<span class="pl-ent">steps</span>:
- <span class="pl-ent">uses</span>: <span class="pl-s">actions/checkout@v3</span>
- <span class="pl-ent">uses</span>: <span class="pl-s">actions/setup-go@v4</span>
<span class="pl-ent">with</span>:
<span class="pl-ent">go-version</span>: <span class="pl-s"><span class="pl-pds">"</span>stable<span class="pl-pds">"</span></span>
- <span class="pl-ent">run</span>: <span class="pl-s">go build .</span>
<span class="pl-ent">golangci-lint</span>:
<span class="pl-ent">name</span>: <span class="pl-s">golangci-lint</span>
<span class="pl-ent">runs-on</span>: <span class="pl-s">ubuntu-latest</span>
<span class="pl-ent">steps</span>:
- <span class="pl-ent">uses</span>: <span class="pl-s">actions/checkout@v3</span>
<span class="pl-ent">with</span>:
<span class="pl-ent">fetch-depth</span>: <span class="pl-c1">0</span>
- <span class="pl-ent">uses</span>: <span class="pl-s">actions/setup-go@v4</span>
<span class="pl-ent">with</span>:
<span class="pl-ent">go-version</span>: <span class="pl-s"><span class="pl-pds">"</span>stable<span class="pl-pds">"</span></span>
- <span class="pl-ent">uses</span>: <span class="pl-s">golangci/golangci-lint-action@v3</span>
<span class="pl-ent">with</span>:
<span class="pl-ent">version</span>: <span class="pl-s">latest</span></pre>
</div>
<h2>
<a id="user-content-go" class="anchor" aria-hidden="true" href="#go"
><span aria-hidden="true" class="octicon octicon-link"></span></a
>Go
</h2>
<p><code>.golangci.yml</code>:</p>
<div class="highlight highlight-source-yaml">
<pre><span class="pl-ent">run</span>:
<span class="pl-ent">timeout</span>: <span class="pl-c1">5m</span>
<span class="pl-ent">tests</span>: <span class="pl-c1">false</span>
<span class="pl-ent">skip-dirs</span>:
- <span class="pl-s"><span class="pl-pds">"</span>.*test.*<span class="pl-pds">"</span></span>
- <span class="pl-s"><span class="pl-pds">"</span>.*mock.*<span class="pl-pds">"</span></span>
- <span class="pl-s"><span class="pl-pds">"</span>.*example.*<span class="pl-pds">"</span></span>
- <span class="pl-s"><span class="pl-pds">"</span>.*utils.*<span class="pl-pds">"</span></span>
<span class="pl-ent">skip-files</span>:
- <span class="pl-s"><span class="pl-pds">"</span>.*Mock.*<span class="pl-pds">"</span></span>
- <span class="pl-s"><span class="pl-pds">"</span>.*_mock.*<span class="pl-pds">"</span></span>
<span class="pl-ent">output</span>:
<span class="pl-ent">sort-results</span>: <span class="pl-c1">true</span>
<span class="pl-ent">linters</span>:
<span class="pl-ent">disable-all</span>: <span class="pl-c1">true</span>
<span class="pl-ent">enable</span>:
<span class="pl-c"><span class="pl-c">#</span> Default</span>
- <span class="pl-s">errcheck</span>
- <span class="pl-s">gosimple</span>
- <span class="pl-s">govet</span>
- <span class="pl-s">ineffassign</span>
- <span class="pl-s">staticcheck</span>
- <span class="pl-s">typecheck</span>
- <span class="pl-s">unused</span>
<span class="pl-c"><span class="pl-c">#</span> Custom</span>
- <span class="pl-s">errchkjson</span>
- <span class="pl-s">errname</span>
- <span class="pl-s">errorlint</span>
- <span class="pl-s">execinquery</span>
- <span class="pl-s">forcetypeassert</span>
- <span class="pl-s">gocritic</span>
- <span class="pl-s">goerr113</span>
- <span class="pl-s">gofumpt</span>
- <span class="pl-s">gosec</span>
- <span class="pl-s">importas</span>
- <span class="pl-s">makezero</span>
- <span class="pl-s">nilnil</span>
- <span class="pl-s">noctx</span>
- <span class="pl-s">prealloc</span>
- <span class="pl-s">reassign</span>
<span class="pl-c"><span class="pl-c">#</span> - rowserrcheck</span>
- <span class="pl-s">sqlclosecheck</span>
- <span class="pl-s">unconvert</span>
<span class="pl-c"><span class="pl-c">#</span> - wastedassign</span>
<span class="pl-ent">fast</span>: <span class="pl-c1">true</span>
<span class="pl-ent">linters-settings</span>:
<span class="pl-c"><span class="pl-c">#</span> Default</span>
<span class="pl-ent">govet</span>:
<span class="pl-ent">check-shadowing</span>: <span class="pl-c1">false</span>
<span class="pl-ent">disable-all</span>: <span class="pl-c1">true</span>
<span class="pl-ent">enable</span>:
- <span class="pl-s">assign</span>
- <span class="pl-s">atomic</span>
- <span class="pl-s">bools</span>
- <span class="pl-s">buildtag</span>
- <span class="pl-s">composites</span>
- <span class="pl-s">copylocks</span>
- <span class="pl-s">fieldalignment</span>
- <span class="pl-s">httpresponse</span>
- <span class="pl-s">loopclosure</span>
- <span class="pl-s">lostcancel</span>
- <span class="pl-s">nilfunc</span>
- <span class="pl-s">printf</span>
- <span class="pl-s">unmarshal</span>
- <span class="pl-s">unreachable</span>
- <span class="pl-s">unusedresult</span>
<span class="pl-ent">staticcheck</span>:
<span class="pl-ent">checks</span>: <span class="pl-s">["all", "-SA1019"]</span>
<span class="pl-c"><span class="pl-c">#</span> Custom</span>
<span class="pl-ent">gocritic</span>:
<span class="pl-ent">disabled-checks</span>:
- <span class="pl-s">ifElseChain</span>
- <span class="pl-s">singleCaseSwitch</span>
- <span class="pl-s">unnamedResult</span>
- <span class="pl-s">whyNoLint</span>
<span class="pl-ent">enabled-tags</span>:
- <span class="pl-s">diagnostic</span>
- <span class="pl-s">style</span>
<span class="pl-ent">gosec</span>:
<span class="pl-ent">excludes</span>:
- <span class="pl-c1">G101</span>
- <span class="pl-c1">G112</span>
- <span class="pl-c1">G402</span>
- <span class="pl-c1">G404</span>
- <span class="pl-c1">G501</span>
- <span class="pl-c1">G505</span>
<span class="pl-ent">exclude-generated</span>: <span class="pl-c1">true</span>
<span class="pl-ent">reassign</span>:
<span class="pl-ent">patterns</span>:
- <span class="pl-s"><span class="pl-pds">"</span>.*<span class="pl-pds">"</span></span></pre>
</div>
<p><code>.goreleaser.yml</code>:</p>
<div class="highlight highlight-source-yaml">
<pre><span class="pl-ent">before</span>:
<span class="pl-ent">hooks</span>:
- <span class="pl-s">go mod tidy</span>
<span class="pl-ent">builds</span>:
- <span class="pl-ent">main</span>: <span class="pl-s">.</span>
<span class="pl-ent">goos</span>:
- <span class="pl-s">linux</span>
- <span class="pl-s">windows</span>
- <span class="pl-s">darwin</span>
<span class="pl-ent">goarch</span>:
- <span class="pl-s">amd64</span>
- <span class="pl-s">arm64</span>
<span class="pl-ent">universal_binaries</span>:
- <span class="pl-ent">replace</span>: <span class="pl-c1">true</span>
<span class="pl-ent">archives</span>:
- <span class="pl-ent">format_overrides</span>:
- <span class="pl-ent">goos</span>: <span class="pl-s">windows</span>
<span class="pl-ent">format</span>: <span class="pl-s">zip</span>
<span class="pl-ent">changelog</span>:
<span class="pl-ent">skip</span>: <span class="pl-c1">false</span>
<span class="pl-ent">use</span>: <span class="pl-s">github</span></pre>
</div>
<h2>
<a id="user-content-misc" class="anchor" aria-hidden="true" href="#misc"
><span aria-hidden="true" class="octicon octicon-link"></span></a
>Misc
</h2>
<p><code>.gitignore</code>:</p>
<div class="highlight highlight-text-adblock">
<pre><span class="pl-c"># macOS</span>
.DS_Store
<span class="pl-c"># Window</span>
<span class="pl-k">*</span>.exe
<span class="pl-c"># IntelliJ</span>
.idea
<span class="pl-c"># VSCode</span>
.vscode
<span class="pl-c"># Go</span>
coverage.out
vendor
<span class="pl-c"># GoReleaser</span>
dist</pre>
</div>
<div>
Feel free to ask me via
<a href="mailto:hauvipapro+posts@gmail.com">email</a> or
<a rel="me" href="https://hachyderm.io/@haunguyen">Mastodon</a>. Source
code is available on
<a href="https://github.com/haunt98/posts-go">GitHub</a>
</div>
</body>
</html>

View File

@ -59,6 +59,7 @@
<a href="2023-06-24-khoan-cat-be-tong.html">Khoan cắt bê tông 101</a>
</li>
<li><a href="2023-06-25-useful-tools.html">Useful tools</a></li>
<li><a href="2023-07-01-pastebin.html">Pastebin</a></li>
</ul>
<div>

View File

@ -0,0 +1,233 @@
# Throw away pastebin
Just a place to throw away some text.
## GitHub Actions
`dependabot.yml`:
```yaml
version: 2
updates:
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "daily"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
```
`go.yml`:
```yaml
name: Go
on:
push:
branches:
- main
paths:
- "**.go"
- "go.mod"
- "go.sum"
pull_request:
branches:
- main
paths:
- "**.go"
- "go.mod"
- "go.sum"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: "stable"
- run: go test -race -failfast ./...
build:
name: Build
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: "stable"
- run: go build .
golangci-lint:
name: golangci-lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-go@v4
with:
go-version: "stable"
- uses: golangci/golangci-lint-action@v3
with:
version: latest
```
## Go
`.golangci.yml`:
```yaml
run:
timeout: 5m
tests: false
skip-dirs:
- ".*test.*"
- ".*mock.*"
- ".*example.*"
- ".*utils.*"
skip-files:
- ".*Mock.*"
- ".*_mock.*"
output:
sort-results: true
linters:
disable-all: true
enable:
# Default
- errcheck
- gosimple
- govet
- ineffassign
- staticcheck
- typecheck
- unused
# Custom
- errchkjson
- errname
- errorlint
- execinquery
- forcetypeassert
- gocritic
- goerr113
- gofumpt
- gosec
- importas
- makezero
- nilnil
- noctx
- prealloc
- reassign
# - rowserrcheck
- sqlclosecheck
- unconvert
# - wastedassign
fast: true
linters-settings:
# Default
govet:
check-shadowing: false
disable-all: true
enable:
- assign
- atomic
- bools
- buildtag
- composites
- copylocks
- fieldalignment
- httpresponse
- loopclosure
- lostcancel
- nilfunc
- printf
- unmarshal
- unreachable
- unusedresult
staticcheck:
checks: ["all", "-SA1019"]
# Custom
gocritic:
disabled-checks:
- ifElseChain
- singleCaseSwitch
- unnamedResult
- whyNoLint
enabled-tags:
- diagnostic
- style
gosec:
excludes:
- G101
- G112
- G402
- G404
- G501
- G505
exclude-generated: true
reassign:
patterns:
- ".*"
```
`.goreleaser.yml`:
```yaml
before:
hooks:
- go mod tidy
builds:
- main: .
goos:
- linux
- windows
- darwin
goarch:
- amd64
- arm64
universal_binaries:
- replace: true
archives:
- format_overrides:
- goos: windows
format: zip
changelog:
skip: false
use: github
```
## Misc
`.gitignore`:
```txt
# macOS
.DS_Store
# Window
*.exe
# IntelliJ
.idea
# VSCode
.vscode
# Go
coverage.out
vendor
# GoReleaser
dist
```

View File

@ -25,3 +25,4 @@ This is where I dump my thoughts.
- [Incident #02](2023-06-10-incident-context.html)
- [Khoan cắt bê tông 101](2023-06-24-khoan-cat-be-tong.html)
- [Useful tools](2023-06-25-useful-tools.html)
- [Pastebin](2023-07-01-pastebin.html)