a6c5cab218
Squashed commit of the following: commit d850dc74a5f36797bd2270c011fe0525adbf9d14 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Wed Aug 2 13:15:01 2023 +0300 all: upd go, tools |
||
---|---|---|
.. | ||
blocked-services | ||
companiesdb | ||
hooks | ||
make | ||
querylog | ||
snap | ||
translations | ||
vetted-filters | ||
README.md | ||
install.sh |
README.md
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'sadguardhome-dev
. -
DOCKER_OUTPUT
: the--output
parameters. By default they aretype=image,name=${DOCKER_IMAGE_NAME},push=false
. -
SUDO
: allow users to usesudo
ordoas
withdocker
. By default none is used.
build-release.sh
: Build a release for all platforms
Required environment:
-
CHANNEL
: release channel, see above. -
GPG_KEY
andGPG_KEY_PASSPHRASE
: data forgpg
. Only required ifSIGN
is1
.
Optional environment:
-
ARCH
andOS
: 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:make ARCH='amd64 arm64' OS='darwin linux' … build-release
The default value is
''
, which means build everything. -
DIST_DIR
: the directory to build a release into. The default value isdist
. -
GO
: set an alternative name for the Go compiler. -
SIGN
:0
to not sign the resulting packages,1
to sign. The default value is1
. -
VERBOSE
:1
to be verbose,2
to also print environment. This script callsgo-build.sh
with the verbosity level one level lower, so to get verbosity level2
ingo-build.sh
, set this to3
when callingbuild-release.sh
. -
VERSION
: release version. Will be set byversion.sh
if it is unset or if it has the defaultMakefile
value ofv0.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-bench.sh
: Run backend benchmarks
Optional environment:
-
GO
: set an alternative name for the Go compiler. -
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 and environment. The default value is0
, don't be verbose.
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 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 is0
, don't be verbose. -
VERSION
: release version. Will be set byversion.sh
if it is unset or if it has the defaultMakefile
value ofv0.0.0
.
Required environment:
CHANNEL
: release channel, see above.
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 is0
, don't be verbose.
go-fuzz.sh
: Run backend fuzz tests
Optional environment:
-
GO
: set an alternative name for the Go compiler. -
FUZZTIME_FLAGS
: set fuss flags for tests. The default value is--fuzztime=20s
. -
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 and environment. The default value is0
, 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 to0
, don't exit the script after the first encountered error. The default value is1
. -
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 is0
, don't be verbose.
go-test.sh
: Run backend tests
Optional environment:
-
GO
: set an alternative name for the Go compiler. -
RACE
: set to0
to not use the Go race detector. The default value is1
, 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 is0
, 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/
: Snapcraft scripts
build.sh
Builds the Snapcraft packages from the binaries created by download.sh
.
download.sh
Downloads the binaries to pack them into Snapcraft packages.
Required environment:
CHANNEL
: release channel, see above.
upload.sh
Uploads the Snapcraft packages created by build.sh
.
Required environment:
-
SNAPCRAFT_CHANNEL
: Snapcraft release channel:edge
,beta
, orcandidate
. -
SNAPCRAFT_STORE_CREDENTIALS
: Credentials for Snapcraft store.
Optional environment:
SNAPCRAFT_CMD
: Overrides the Snapcraft command. Default:snapcraft
.
translations/
: Twosky Integration Script
Usage
-
go run ./scripts/translations help
: print usage. -
go run ./scripts/translations download [-n <count>]
: download and save all translations.n
is optional flag where count is a number of concurrent downloads. -
go run ./scripts/translations upload
: upload the baseen
locale. -
go run ./scripts/translations summary
: show the current locales summary. -
go run ./scripts/translations unused
: show the list of unused strings. -
go run ./scripts/translations 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:
-
DOWNLOAD_LANGUAGES
: set a list of specific languages todownload
. For examplear be bg
. If it set toblocker
then script will download only those languages, which need to be fully translated (de en es fr it ja ko pt-br pt-pt ru zh-cn zh-tw
). -
UPLOAD_LANGUAGE
: set an alternative language forupload
. -
TWOSKY_URI
: set an alternative URL fordownload
orupload
. -
TWOSKY_PROJECT_ID
: set an alternative project ID fordownload
orupload
.
companiesdb/
: Whotracks.me Database Converter
A simple script that downloads and updates the companies DB in the client
code from the repo.
Usage
sh ./scripts/companiesdb/download.sh
blocked-services/
: Blocked Services Updater
A simple script that downloads and updates the blocked services index from AdGuard's Hostlists Registry.
Optional environment:
URL
: the URL of the index file. By default it'shttps://adguardteam.github.io/HostlistsRegistry/assets/services.json
.
Usage
go run ./scripts/blocked-services/main.go
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.
Optional environment:
URL
: the URL of the index file. By default it'shttps://adguardteam.github.io/HostlistsRegistry/assets/filters.json
.
Usage
go run ./scripts/vetted-filters/main.go