AdGuardHome/scripts/README.md
Stanislav Chzhen 195300f56e Pull request 1778: AG-20200-translation-script-update-auto
Merge in DNS/adguard-home from AG-20200-translation-script-update-auto to master

Squashed commit of the following:

commit 22c68f8443c59a5ba7ff7cd33c395f6dcf321e04
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Mon Apr 3 18:08:40 2023 +0300

    scripts: imp err more

commit a6ea94b75c4bb09868f45f5c61d62622acf36d0c
Merge: 69749b17 2a0d0629
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Mon Apr 3 17:38:05 2023 +0300

    Merge branch 'master' into AG-20200-translation-script-update-auto

commit 69749b1767bd49d27c96ac17ef049f6ff6827f86
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Mon Apr 3 17:37:27 2023 +0300

    scripts: imp err

commit 6d3eb3270e6fcbe94e9c8f73d654b65a15abcb37
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Mon Apr 3 13:10:08 2023 +0300

    scripts: imp err msg

commit a95e3383f1c27b73eaa570dbe8e008c2bdf22be5
Merge: 16caba76 3575aa05
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Mon Apr 3 12:06:28 2023 +0300

    Merge branch 'master' into AG-20200-translation-script-update-auto

commit 16caba76f0a16d70542f6fa0d6d83b134c630da4
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Mon Apr 3 12:05:49 2023 +0300

    scripts: fix err

commit 3566193a7db677420722938c98089a40809c8739
Merge: 55efdeb8 da9008ab
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Thu Mar 30 13:13:54 2023 +0300

    Merge branch 'master' into AG-20200-translation-script-update-auto

commit 55efdeb80b44183767b188109f1e21aac2fa9839
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Thu Mar 30 13:13:05 2023 +0300

    scripts: simplify

commit 4a090a6f015e4adb9d5a3f6e3c3c5294daf67f1d
Merge: 571b2a29 c576d505
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Wed Mar 29 14:10:06 2023 +0300

    Merge branch 'master' into AG-20200-translation-script-update-auto

commit 571b2a29777e694971cc02c895328d733b411803
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Wed Mar 29 14:09:17 2023 +0300

    scripts: fix log msg

commit 6e92a76c4b9b1240501612878d5f42b3058cba32
Merge: 207c8bac 487675b9
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Tue Mar 28 18:01:58 2023 +0300

    Merge branch 'master' into AG-20200-translation-script-update-auto

commit 207c8bacd4818c496b409cee96a4b6f65fbf8c24
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Tue Mar 28 18:01:23 2023 +0300

    scripts: add verbose flag

commit e82270f53ce5cf8b1fdb39bff6367fd800483abb
Merge: 11761bdc 132ec556
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Mon Mar 27 15:09:21 2023 +0300

    Merge branch 'master' into AG-20200-translation-script-update-auto

commit 11761bdc3d9fd10221d0c21d993db0983d9e222f
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Mon Mar 27 15:08:39 2023 +0300

    scripts: upd readme

commit cdac6cf37022e67d4a45be587210765294e96270
Merge: 5f824358 df61741f
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Thu Mar 23 16:28:37 2023 +0300

    Merge branch 'master' into AG-20200-translation-script-update-auto

commit 5f82435847d74bf12a7b450b70d9326a57c99da6
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date:   Thu Mar 23 16:27:01 2023 +0300

    scripts: add locale update auto
2023-04-03 18:22:15 +03:00

258 lines
7.6 KiB
Markdown

# AdGuard Home Scripts
## `hooks/`: Git Hooks
### Usage
Run `make init` from the project root.
## `querylog/`: Query Log Helpers
### Usage
* `npm install`: install dependencies. Run this first.
* `npm run anonymize <source> <dst>`: read the query log from the `<source>`
and write anonymized version to `<dst>`.
## `make/`: Makefile Scripts
The release channels are: `development` (the default), `edge`, `beta`, and
`release`. If verbosity levels aren't documented here, there are only two: `0`,
don't print anything, and `1`, be verbose.
### `build-docker.sh`: Build A Multi-Architecture Docker Image
Required environment:
* `CHANNEL`: release channel, see above.
* `COMMIT`: current Git revision.
* `DIST_DIR`: the directory where a release has previously been built.
* `VERSION`: release version.
Optional environment:
* `DOCKER_IMAGE_NAME`: the name of the resulting Docker container. By default
it's `adguardhome-dev`.
* `DOCKER_OUTPUT`: the `--output` parameters. By default they are
`type=image,name=${DOCKER_IMAGE_NAME},push=false`.
* `SUDO`: allow users to use `sudo` or `doas` with `docker`. By default none
is used.
### `build-release.sh`: Build A Release For All Platforms
Required environment:
* `CHANNEL`: release channel, see above.
* `GPG_KEY` and `GPG_KEY_PASSPHRASE`: data for `gpg`. Only required if `SIGN`
is `1`.
Optional environment:
* `ARCH` and `OS`: space-separated list of architectures and operating systems
for which to build a release. For example, to build only for 64-bit ARM and
AMD on Linux and Darwin:
```sh
make ARCH='amd64 arm64' OS='darwin linux' … build-release
```
The default value is `''`, which means build everything.
* `BUILD_SNAP`: `0` to not build Snapcraft packages, `1` to build. The
default value is `1`.
* `DIST_DIR`: the directory to build a release into. The default value is
`dist`.
* `GO`: set an alternative name for the Go compiler.
* `SIGN`: `0` to not sign the resulting packages, `1` to sign. The default
value is `1`.
* `VERBOSE`: `1` to be verbose, `2` to also print environment. This script
calls `go-build.sh` with the verbosity level one level lower, so to get
verbosity level `2` in `go-build.sh`, set this to `3` when calling
`build-release.sh`.
* `VERSION`: release version. Will be set by `version.sh` if it is unset or
if it has the default `Makefile` value of `v0.0.0`.
### `clean.sh`: Cleanup
Optional environment:
* `GO`: set an alternative name for the Go compiler.
Required environment:
* `DIST_DIR`: the directory where a release has previously been built.
### `go-build.sh`: Build The Backend
Optional environment:
* `GOARM`: ARM processor options for the Go compiler.
* `GOMIPS`: ARM processor options for the Go compiler.
* `GO`: set an alternative name for the Go compiler.
* `OUT`: output binary name.
* `PARALLELISM`: set the maximum number of concurrently run build commands
(that is, compiler, linker, etc.).
* `SOURCE_DATE_EPOCH`: the [standardized][repr] environment variable for the
Unix epoch time of the latest commit in the repository. If set, overrides
the default obtained from Git. Useful for reproducible builds.
* `VERBOSE`: verbosity level. `1` shows every command that is run and every
Go package that is processed. `2` also shows subcommands and environment.
The default value is `0`, don't be verbose.
* `VERSION`: release version. Will be set by `version.sh` if it is unset or
if it has the default `Makefile` value of `v0.0.0`.
Required environment:
* `CHANNEL`: release channel, see above.
[repr]: https://reproducible-builds.org/docs/source-date-epoch/
### `go-deps.sh`: Install Backend Dependencies
Optional environment:
* `GO`: set an alternative name for the Go compiler.
* `VERBOSE`: verbosity level. `1` shows every command that is run and every
Go package that is processed. `2` also shows subcommands and environment.
The default value is `0`, don't be verbose.
### `go-lint.sh`: Run Backend Static Analyzers
Don't forget to run `make go-tools` once first!
Optional environment:
* `EXIT_ON_ERROR`: if set to `0`, don't exit the script after the first
encountered error. The default value is `1`.
* `GO`: set an alternative name for the Go compiler.
* `VERBOSE`: verbosity level. `1` shows every command that is run. `2` also
shows subcommands. The default value is `0`, don't be verbose.
### `go-test.sh`: Run Backend Tests
Optional environment:
* `GO`: set an alternative name for the Go compiler.
* `RACE`: set to `0` to not use the Go race detector. The default value is
`1`, use the race detector.
* `TIMEOUT_FLAGS`: set timeout flags for tests. The default value is
`--timeout 30s`.
* `VERBOSE`: verbosity level. `1` shows every command that is run and every
Go package that is processed. `2` also shows subcommands. The default
value is `0`, don't be verbose.
### `go-tools.sh`: Install Backend Tooling
Installs the Go static analysis and other tools into `${PWD}/bin`. Either add
`${PWD}/bin` to your `$PATH` before all other entries, or use the commands
directly, or use the commands through `make` (for example, `make go-lint`).
Optional environment:
* `GO`: set an alternative name for the Go compiler.
### `version.sh`: Generate And Print The Current Version
Required environment:
* `CHANNEL`: release channel, see above.
## `snap/`: Snap GUI Files
App icons (see https://github.com/AdguardTeam/AdGuardHome/pull/1836), Snap
manifest file templates, and helper scripts.
## `translations/`: Twosky Integration Script
### Usage
* `go run main.go help`: print usage.
* `go run main.go download [-n <count>]`: download and save all translations.
`n` is optional flag where count is a number of concurrent downloads.
* `go run main.go upload`: upload the base `en` locale.
* `go run main.go summary`: show the current locales summary.
* `go run main.go unused`: show the list of unused strings.
* `go run main.go auto-add`: add locales with additions to the git and
restore locales with deletions.
After the download you'll find the output locales in the `client/src/__locales/`
directory.
Optional environment:
* `UPLOAD_LANGUAGE`: set an alternative language for `upload`.
* `TWOSKY_URI`: set an alternative URL for `download` or `upload`.
* `TWOSKY_PROJECT_ID`: set an alternative project ID for `download` or
`upload`.
## `companiesdb/`: Whotracks.me Database Converter
A simple script that downloads and updates the companies DB in the `client`
code from [the repo][companiesrepo].
### Usage
```sh
sh ./scripts/companiesdb/download.sh
```
[companiesrepo]: https://github.com/AdguardTeam/companiesdb
## `blocked-services/`: Blocked Services Updater
A simple script that downloads and updates the blocked services index from
AdGuard's [Hostlists Registry][reg].
Optional environment:
* `URL`: the URL of the index file. By default it's
`https://adguardteam.github.io/HostlistsRegistry/assets/services.json`.
### Usage
```sh
go run ./scripts/blocked-services/main.go
```
[reg]: https://github.com/AdguardTeam/HostlistsRegistry
## `vetted-filters/`: Vetted Filters Updater
Similar to the one above, a script that downloads and updates the vetted
filtering list data from AdGuard's [Hostlists Registry][reg].
Optional environment:
* `URL`: the URL of the index file. By default it's
`https://adguardteam.github.io/HostlistsRegistry/assets/filters.json`.
### Usage
```sh
go run ./scripts/vetted-filters/main.go
```