AdGuardHome/scripts
Dimitry Kolyshev c77b2a0ce5 Pull request: home: imp code
Merge in DNS/adguard-home from home-imp-code to master

Squashed commit of the following:

commit 459297e189c55393bf0340dd51ec9608d3475e55
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed May 10 11:42:34 2023 +0300

    home: imp code

commit ab38e1e80fed7b24fe57d4afdc57b70608f65d73
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed May 10 11:01:23 2023 +0300

    all: lint script

commit 7df68b128bf32172ef2e3bf7116f4f72a97baa2b
Merge: bcb482714 db52f7a3a
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed May 10 10:59:40 2023 +0300

    Merge remote-tracking branch 'origin/master' into home-imp-code

commit bcb482714780da882e69c261be08511ea4f36f3b
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Thu May 4 13:48:27 2023 +0300

    all: lint script

commit 1c017f27715202ec1f40881f069a96f11f9822e8
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Thu May 4 13:45:25 2023 +0300

    all: lint script

commit ee3d427a7d6ee7e377e67c5eb99eebc7fb1e6acc
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Thu May 4 13:44:53 2023 +0300

    home: imp code

commit bc50430469123415216e60e178bd8e30fc229300
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Thu May 4 13:12:10 2023 +0300

    home: imp code

commit fc07e416aeab2612e68cf0e3f933aaed95931115
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Thu May 4 11:42:32 2023 +0300

    aghos: service precheck

commit a68480fd9c4cd6f3c89210bee6917c53074f7a82
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Thu May 4 11:07:05 2023 +0300

    home: imp code

commit 61b743a340ac1564c48212452c7a9acd1808d352
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed May 3 17:17:21 2023 +0300

    all: lint script

commit c6fe620510c4af5b65456e90cb3424831334e004
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed May 3 17:16:37 2023 +0300

    home: imp code

commit 4b2fb47ea9c932054ccc72b1fd1d11793c93e39c
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed May 3 16:55:44 2023 +0300

    home: imp code

commit 63df3e2ab58482920a074cfd5f4188e49a0f8448
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed May 3 16:25:38 2023 +0300

    home: imp code

commit c7f1502f976482c2891e0c64426218b549585e83
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed May 3 15:54:30 2023 +0300

    home: imp code

commit c64cdaf1c82495bb70d9cdcaf7be9eeee9a7c773
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed May 3 14:35:04 2023 +0300

    home: imp code

commit a50436e040b3a064ef51d5f936b879fe8de72d41
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed May 3 14:24:02 2023 +0300

    home: imp code

commit 2b66464f472df732ea27cbbe5ac5c673a13bc14b
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed May 3 14:11:53 2023 +0300

    home: imp code

commit 713ce2963c210887faa0a06e41e01e4ebbf96894
Author: Dimitry Kolyshev <dkolyshev@adguard.com>
Date:   Wed May 3 14:10:54 2023 +0300

    home: imp code
2023-05-10 16:30:03 +03:00
..
blocked-services Pull request: 3972-hostlists-services 2022-10-27 15:46:25 +03:00
companiesdb Pull request: 5471-new-trackers-db 2023-02-14 13:52:22 +03:00
hooks Pull request 1804: newline-lint 2023-04-06 14:21:46 +03:00
make Pull request: home: imp code 2023-05-10 16:30:03 +03:00
querylog Pull request 1804: newline-lint 2023-04-06 14:21:46 +03:00
snap Update Snap to Ubuntu Core 22 #4843 2022-08-17 02:29:41 +10:00
translations Pull request 1807: upd-golibs 2023-04-07 14:21:37 +03:00
vetted-filters Pull request: use-download-url 2022-11-24 18:44:39 +03:00
README.md Pull request 1778: AG-20200-translation-script-update-auto 2023-04-03 18:22:15 +03:00
install.sh Pull request: 5431 Privileged install 2023-02-16 18:57:44 +03:00

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'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:
    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 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.

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.

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's https://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's https://adguardteam.github.io/HostlistsRegistry/assets/filters.json.

Usage

go run ./scripts/vetted-filters/main.go