2023-06-30 18:06:13 +00:00
|
|
|
# Throw away pastebin
|
|
|
|
|
|
|
|
Just a place to throw away some text.
|
|
|
|
|
2023-07-30 10:23:34 +00:00
|
|
|
## `.gitignore`
|
|
|
|
|
|
|
|
```txt
|
|
|
|
# macOS
|
|
|
|
.DS_Store
|
|
|
|
|
|
|
|
# Window
|
|
|
|
*.exe
|
|
|
|
|
|
|
|
# IntelliJ
|
|
|
|
.idea
|
|
|
|
|
|
|
|
# VSCode
|
|
|
|
.vscode
|
|
|
|
|
|
|
|
# Go
|
|
|
|
coverage.out
|
|
|
|
vendor
|
|
|
|
|
|
|
|
# GoReleaser
|
|
|
|
dist
|
|
|
|
```
|
|
|
|
|
2023-06-30 18:06:13 +00:00
|
|
|
## 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
|
|
|
|
```
|
|
|
|
|
2024-02-08 17:13:49 +00:00
|
|
|
## Git clean up
|
2023-06-30 18:06:13 +00:00
|
|
|
|
2023-08-03 10:33:40 +00:00
|
|
|
```sh
|
|
|
|
# Delete untracked
|
|
|
|
git clean -fdx
|
2023-06-30 18:06:13 +00:00
|
|
|
|
2023-08-03 10:33:40 +00:00
|
|
|
git gc
|
2023-07-30 10:23:34 +00:00
|
|
|
```
|
2023-06-30 18:06:13 +00:00
|
|
|
|
2023-08-03 10:33:40 +00:00
|
|
|
## Delete `.DS_Store`
|
2023-06-30 18:06:13 +00:00
|
|
|
|
2023-08-03 10:33:40 +00:00
|
|
|
With [find](https://stackoverflow.com/q/30483670):
|
|
|
|
|
|
|
|
```sh
|
|
|
|
find . -name ".DS_Store" -print -type f -delete
|
2023-07-30 10:23:34 +00:00
|
|
|
```
|
2023-06-30 18:06:13 +00:00
|
|
|
|
2023-08-03 10:33:40 +00:00
|
|
|
With [fd](https://github.com/sharkdp/fd):
|
2023-06-30 18:06:13 +00:00
|
|
|
|
2023-08-03 10:33:40 +00:00
|
|
|
```sh
|
|
|
|
fd -H '^\.DS_Store$' -tf -X rm
|
|
|
|
```
|
|
|
|
|
2024-01-28 07:10:04 +00:00
|
|
|
## [sd](https://github.com/chmln/sd)
|
|
|
|
|
|
|
|
Remove proto options:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
sd -F 'import "validate/validate.proto";' '' api/raw/*.proto
|
|
|
|
sd -F 'import "marshal-zap.proto";' '' api/raw/*.proto
|
|
|
|
sd -f s '\s\[.*?];' ';' api/raw/*.proto
|
|
|
|
```
|
|
|
|
|
2023-08-03 10:33:40 +00:00
|
|
|
## [fdupes](https://github.com/adrianlopezroche/fdupes)
|
|
|
|
|
|
|
|
Remove duplicated files:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
fdupes -rdN .
|
2023-06-30 18:06:13 +00:00
|
|
|
```
|
2023-07-30 11:13:08 +00:00
|
|
|
|
2023-07-30 18:34:29 +00:00
|
|
|
## [rsync](https://github.com/WayneD/rsync)
|
|
|
|
|
|
|
|
```sh
|
|
|
|
# Result is dst/src
|
2023-08-03 09:22:08 +00:00
|
|
|
rsync -avzP src dst
|
2023-07-30 18:34:29 +00:00
|
|
|
|
|
|
|
# Result is dst/* with * is from src
|
2023-08-03 09:22:08 +00:00
|
|
|
rsync -avzP src/ dst
|
2023-07-30 18:34:29 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
Commonly flags:
|
|
|
|
|
2023-08-03 09:22:08 +00:00
|
|
|
- `-v`: verbose
|
2023-07-30 18:34:29 +00:00
|
|
|
- `-z`: compress
|
|
|
|
- `-P`: enable both `--partial`, `--progress` to easily resume after interupt
|
|
|
|
- `-n`: dry run
|
|
|
|
|
|
|
|
Be careful flags (need dry run if not sure):
|
|
|
|
|
2023-08-05 18:56:25 +00:00
|
|
|
- `-u`: skip if files in **dst** is already newer than in **src**, if you want
|
|
|
|
to sync both ways
|
|
|
|
- `--delete`: delete files in **dst** if not exist in **src**, useful to sync
|
|
|
|
dst with src
|
2023-07-30 18:34:29 +00:00
|
|
|
|
2024-02-10 17:06:43 +00:00
|
|
|
## [atuin](https://github.com/atuinsh/atuin)
|
|
|
|
|
|
|
|
Remove duplicated command:
|
|
|
|
|
|
|
|
```sql
|
|
|
|
delete
|
|
|
|
from history
|
|
|
|
where id not in (select max(id)
|
|
|
|
from history
|
|
|
|
group by command);
|
2024-03-11 20:39:44 +00:00
|
|
|
|
|
|
|
delete
|
|
|
|
from history
|
|
|
|
where length(command) > 128;
|
|
|
|
```
|
|
|
|
|
|
|
|
Remove shell history:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
cat /dev/null > ~/.zsh_history
|
2024-02-10 17:06:43 +00:00
|
|
|
```
|
|
|
|
|
2023-07-30 11:13:08 +00:00
|
|
|
## [F2](https://github.com/ayoisaiah/f2)
|
|
|
|
|
|
|
|
Rename:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
# If want dry run, remove -x
|
2024-03-16 07:53:45 +00:00
|
|
|
f2 -r "{mtime.YYYY}{mtime.MM}{mtime.DD}.{mtime.H}{mtime.mm}{mtime.ss}{ext}" -F -x
|
2023-07-30 11:13:08 +00:00
|
|
|
```
|
2023-08-03 10:33:40 +00:00
|
|
|
|
|
|
|
## [Instaloader](https://github.com/instaloader/instaloader)
|
|
|
|
|
|
|
|
`args.txt`:
|
|
|
|
|
|
|
|
```txt
|
|
|
|
--no-video-thumbnails
|
|
|
|
--no-captions
|
|
|
|
--no-metadata-json
|
|
|
|
--stories
|
|
|
|
--fast-update
|
|
|
|
--sanitize-paths
|
|
|
|
--abort-on=302,400,429
|
|
|
|
--no-iphone
|
|
|
|
```
|
|
|
|
|
|
|
|
`login.txt`:
|
|
|
|
|
|
|
|
```txt
|
|
|
|
--login=your_insta_username
|
|
|
|
--sessionfile=where/sessionfile/store
|
|
|
|
```
|
|
|
|
|
|
|
|
Run:
|
|
|
|
|
|
|
|
```txt
|
|
|
|
instaloader +login.txt +args.txt +targets.txt
|
|
|
|
```
|
2023-08-21 12:38:37 +00:00
|
|
|
|
|
|
|
## [gRPCurl](https://github.com/fullstorydev/grpcurl)
|
|
|
|
|
|
|
|
```sh
|
|
|
|
grpcurl -proto path/file.proto \
|
2023-08-24 04:44:53 +00:00
|
|
|
-d '{"key": "value", "timestamp": "1997-04-01T00:00:00Z"}' \
|
2023-08-21 12:38:37 +00:00
|
|
|
internal-social.zalopay.vn:443 \
|
|
|
|
pkg.Service/GetData
|
|
|
|
```
|
2024-02-08 17:13:49 +00:00
|
|
|
|
|
|
|
## [Zed](https://github.com/zed-industries/zed)
|
|
|
|
|
|
|
|
Settings:
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"telemetry": {
|
|
|
|
"diagnostics": false,
|
|
|
|
"metrics": false
|
|
|
|
},
|
|
|
|
"vim_mode": true,
|
|
|
|
"language_overrides": {
|
|
|
|
"JSON": {
|
|
|
|
"format_on_save": "off",
|
|
|
|
"formatter": {
|
|
|
|
"external": {
|
|
|
|
"command": "prettier",
|
|
|
|
"arguments": ["--stdin-filepath", "{buffer_path}"]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|