all: add more docs to lint

This commit is contained in:
Ainar Garipov 2024-12-19 16:08:13 +03:00
parent 261c1599a5
commit 7aa08036b2
6 changed files with 167 additions and 335 deletions

View File

@ -1,54 +1,43 @@
# Testing DHCP Server # Testing DHCP Server
Contents: Contents:
* [Test setup with Virtual Box](#vbox)
* [Quick test with DHCPTest](#dhcptest) - [Test setup with Virtual Box](#vbox)
- [Quick test with DHCPTest](#dhcptest)
## <a href="#vbox" id="vbox" name="vbox">Test setup with Virtual Box</a> ## <a href="#vbox" id="vbox" name="vbox">Test setup with Virtual Box</a>
### Prerequisites ### Prerequisites
To set up a test environment for DHCP server you will need: To set up a test environment for DHCP server you will need:
* Linux AG Home host machine (Virtual). - Linux AG Home host machine (Virtual)
* Virtual Box. - Virtual Box
* Virtual machine (guest OS doesn't matter). - Virtual machine (guest OS doesn't matter)
### Configure Virtual Box ### Configure Virtual Box
1. Install Virtual Box and run the following command to create a Host-Only 1. Install Virtual Box and run the following command to create a Host-Only network:
network:
```sh ```sh
$ VBoxManage hostonlyif create VBoxManage hostonlyif create
``` ```
You can check its status by `ip a` command. You can check its status by `ip a` command.
You can also set up Host-Only network using Virtual Box menu: You can also set up Host-Only network using Virtual Box menu in *File → Host Network Manager.*
``` 2. Create your virtual machine and set up its network in *VM Settings → Network → Host-only Adapter.*
File -> Host Network Manager...
```
2. Create your virtual machine and set up its network: 3. Start your VM, install an OS. Configure your network interface to use DHCP and the OS should ask for a IP address from our DHCP server.
``` 4. To see the current IP addresses on client OS you can use `ip a` command on Linux or `ipconfig` on Windows.
VM Settings -> Network -> Host-only Adapter
```
3. Start your VM, install an OS. Configure your network interface to use 5. To force the client OS to request an IP from DHCP server again, you can use `dhclient` on Linux or `ipconfig /release` on Windows.
DHCP and the OS should ask for a IP address from our DHCP server.
4. To see the current IP addresses on client OS you can use `ip a` command on ### Configure server
Linux or `ipconfig` on Windows.
5. To force the client OS to request an IP from DHCP server again, you can 1. Edit server configuration file `AdGuardHome.yaml`, for example:
use `dhclient` on Linux or `ipconfig /release` on Windows.
### Configure server
1. Edit server configuration file `AdGuardHome.yaml`, for example:
```yaml ```yaml
dhcp: dhcp:
@ -70,7 +59,7 @@ To set up a test environment for DHCP server you will need:
ra_allow_slaac: false ra_allow_slaac: false
``` ```
2. Start the server 2. Start the server:
```sh ```sh
./AdGuardHome -v ./AdGuardHome -v
@ -78,19 +67,18 @@ To set up a test environment for DHCP server you will need:
There should be a message in log which shows that DHCP server is ready: There should be a message in log which shows that DHCP server is ready:
``` ```none
[info] DHCP: listening on 0.0.0.0:67 [info] dhcpv4: listening
``` ```
## <a href="#dhcptest" id="dhcptest" name="dhcptest">Quick test with DHCPTest utility</a> ## <a href="#dhcptest" id="dhcptest" name="dhcptest">Quick test with DHCPTest utility</a>
### Prerequisites ### Prerequisites
* [DHCP test utility][dhcptest-gh]. - [DHCP test utility][dhcptest-gh].
### Quick test ### Quick test
The DHCP server could be tested for DISCOVER-OFFER packets with in The DHCP server could be tested for DISCOVER-OFFER packets with in interactive mode.
interactive mode.
[dhcptest-gh]: https://github.com/CyberShadow/dhcptest [dhcptest-gh]: https://github.com/CyberShadow/dhcptest

View File

@ -1,70 +0,0 @@
# AdGuard Home's DNS filtering go library
Example use:
```bash
[ -z "$GOPATH" ] && export GOPATH=$HOME/go
go get -d github.com/AdguardTeam/AdGuardHome/filtering
```
Create file filter.go
```filter.go
package main
import (
"github.com/AdguardTeam/AdGuardHome/filtering"
"log"
)
func main() {
filter := filtering.New()
filter.AddRule("||dou*ck.net^")
host := "www.doubleclick.net"
res, err := filter.CheckHost(host)
if err != nil {
// temporary failure
log.Fatalf("Failed to check host %q: %s", host, err)
}
if res.IsFiltered {
log.Printf("Host %s is filtered, reason - %q, matched rule: %q", host, res.Reason, res.Rule)
} else {
log.Printf("Host %s is not filtered, reason - %q", host, res.Reason)
}
}
```
And then run it:
```bash
go run filter.go
```
You will get:
```
2000/01/01 00:00:00 Host www.doubleclick.net is filtered, reason - 'FilteredBlackList', matched rule: '||dou*ck.net^'
```
You can also enable checking against AdGuard's SafeBrowsing:
```go
package main
import (
"github.com/AdguardTeam/AdGuardHome/filtering"
"log"
)
func main() {
filter := filtering.New()
filter.EnableSafeBrowsing()
host := "wmconvirus.narod.ru" // hostname for testing safebrowsing
res, err := filter.CheckHost(host)
if err != nil {
// temporary failure
log.Fatalf("Failed to check host %q: %s", host, err)
}
if res.IsFiltered {
log.Printf("Host %s is filtered, reason - %q, matched rule: %q", host, res.Reason, res.Rule)
} else {
log.Printf("Host %s is not filtered, reason - %q", host, res.Reason)
}
}
```

View File

@ -1,15 +1,17 @@
# AdGuard Home v0.108.0 Changelog DRAFT # AdGuard Home v0.108.0 Changelog DRAFT
This changelog should be merged into the main one once the next API matures This changelog should be merged into the main one once the next API matures enough.
enough.
## [v0.108.0] - TODO ## [v0.108.0] - TODO
### Added ### Added
- The ability to change the port of the pprof debug API. - The ability to change the port of the pprof debug API.
- The ability to log to stderr using `--logFile=stderr`. - The ability to log to stderr using `--logFile=stderr`.
- The new `--web-addr` flag to set the Web UI address in a `host:port` form. - The new `--web-addr` flag to set the Web UI address in a `host:port` form.
- `SIGHUP` now reloads all configuration from the configuration file ([#5676]). - `SIGHUP` now reloads all configuration from the configuration file ([#5676]).
### Changed ### Changed
@ -20,20 +22,21 @@ enough.
#### Other changes #### Other changes
- `-h` is now an alias for `--help` instead of the removed `--host`, see below. - `-h` is now an alias for `--help` instead of the removed `--host`, see below. Use `--web-addr=host:port` to set an address on which to serve the Web UI.
Use `--web-addr=host:port` to set an address on which to serve the Web UI.
### Fixed ### Fixed
- `--check-config` breaking the configuration file ([#4067]). - `--check-config` breaking the configuration file ([#4067]).
- Inconsistent application of `--work-dir/-w` ([#2598], [#2902]). - Inconsistent application of `--work-dir/-w` ([#2598], [#2902]).
- The order of `-v/--verbose` and `--version` being significant ([#2893]). - The order of `-v/--verbose` and `--version` being significant ([#2893]).
### Removed ### Removed
- The deprecated `--no-mem-optimization` and `--no-etc-hosts` flags. - The deprecated `--no-mem-optimization` and `--no-etc-hosts` flags.
- `--host` and `-p/--port` flags. Use `--web-addr=host:port` to set an address
on which to serve the Web UI. `-h` is now an alias for `--help`, see above. - `--host` and `-p/--port` flags. Use `--web-addr=host:port` to set an address on which to serve the Web UI. `-h` is now an alias for `--help`, see above.
[#2598]: https://github.com/AdguardTeam/AdGuardHome/issues/2598 [#2598]: https://github.com/AdguardTeam/AdGuardHome/issues/2598
[#2893]: https://github.com/AdguardTeam/AdGuardHome/issues/2893 [#2893]: https://github.com/AdguardTeam/AdGuardHome/issues/2893

View File

@ -1,35 +1,27 @@
# AdGuard Home OpenAPI # AdGuard Home OpenAPI
We are using We are using [OpenAPI specification](https://swagger.io/docs/specification/about/) to generate AdGuard Home API specification.
[OpenAPI specification](https://swagger.io/docs/specification/about/)
to generate AdGuard Home API specification.
## How To Edit The API Spec ## How to edit the API spec
The easiest way would be to use The easiest way would be to use [Swagger Editor](http://editor.swagger.io/) and just copy/paste the YAML file there.
[Swagger Editor](http://editor.swagger.io/)
and just copy/paste the YAML file there.
## How To Read The API Doc ## How to read the API doc
1. `yarn install` 1. `yarn install`
2. `yarn start` 2. `yarn start`
3. Open `http://localhost:4000/` 3. open `http://localhost:4000/`
## Changelog ## Changelog
[Here](CHANGELOG.md) we keep track of all non-compatible changes that are being [Here](CHANGELOG.md) we keep track of all non-compatible changes that are being made.
made.
## Authentication ## Authentication
If AdGuard Home's web user is password-protected, a web client must use If AdGuard Homes web user is password-protected, a web client must use authentication mechanism when sending requests to server. Basic access authentication is the most simple method: a client must pass `Authorization` HTTP header along with all requests:
authentication mechanism when sending requests to server. Basic access
authentication is the most simple method - a client must pass `Authorization`
HTTP header along with all requests:
```http ```http
Authorization: Basic BASE64_DATA Authorization: Basic BASE64_DATA
``` ```
Where BASE64_DATA is base64-encoded data for `username:password` string. Where `BASE64_DATA` is base64-encoded data for `username:password` string.

View File

@ -1,96 +1,72 @@
# AdGuard Home Scripts # AdGuard Home scripts
## `hooks/`: Git Hooks ## `hooks/`: Git hooks
### Usage ### Usage
Run `make init` from the project root. Run `make init` from the project root.
## `querylog/`: Query Log Helpers ## `querylog/`: Query Log Helpers
### Usage ### 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>`.
- `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 ## `make/`: Makefile scripts
The release channels are: `development` (the default), `edge`, `beta`, and 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.
`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
### `build-docker.sh`: Build a multi-architecture Docker image
Required environment: Required environment:
* `CHANNEL`: release channel, see above. - `CHANNEL`: release channel, see above.
* `DIST_DIR`: the directory where a release has previously been built. - `DIST_DIR`: the directory where a release has previously been built.
* `REVISION`: current Git revision. - `REVISION`: current Git revision.
* `VERSION`: release version. - `VERSION`: release version.
Optional environment: Optional environment:
* `DOCKER_IMAGE_NAME`: the name of the resulting Docker container. By default - `DOCKER_IMAGE_NAME`: the name of the resulting Docker container. By default it's `adguardhome-dev`.
it's `adguardhome-dev`.
* `DOCKER_OUTPUT`: the `--output` parameters. By default they are - `DOCKER_OUTPUT`: the `--output` parameters. By default they are `type=image,name=${DOCKER_IMAGE_NAME},push=false`.
`type=image,name=${DOCKER_IMAGE_NAME},push=false`.
* `SUDO`: allow users to use `sudo` or `doas` with `docker`. By default none - `SUDO`: allow users to use `sudo` or `doas` with `docker`. By default none is used.
is used.
### `build-release.sh`: Build a release for all platforms
### `build-release.sh`: Build a release for all platforms
Required environment: Required environment:
* `CHANNEL`: release channel, see above. - `CHANNEL`: release channel, see above.
* `GPG_KEY` and `GPG_KEY_PASSPHRASE`: data for `gpg`. Only required if `SIGN` - `GPG_KEY` and `GPG_KEY_PASSPHRASE`: data for `gpg`. Only required if `SIGN` is `1`.
is `1`.
Optional environment: Optional environment:
* `ARCH` and `OS`: space-separated list of architectures and operating systems - `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:
for which to build a release. For example, to build only for 64-bit ARM and
AMD on Linux and Darwin:
```sh ```sh
make ARCH='amd64 arm64' OS='darwin linux' … build-release make ARCH='amd64 arm64' OS='darwin linux' … build-release
``` ```
The default value is `''`, which means build everything. The default value is `''`, which means build everything.
* `DIST_DIR`: the directory to build a release into. The default value is - `DIST_DIR`: the directory to build a release into. The default value is `dist`.
`dist`.
* `GO`: set an alternative name for the Go compiler. - `GO`: set an alternative name for the Go compiler.
* `SIGN`: `0` to not sign the resulting packages, `1` to sign. The default - `SIGN`: `0` to not sign the resulting packages, `1` to sign. The default value is `1`.
value is `1`.
* `VERBOSE`: `1` to be verbose, `2` to also print environment. This script - `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`.
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 - `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`.
if it has the default `Makefile` value of `v0.0.0`.
We're using Go's [forward compatibility mechanism][go-toolchain] for updating We're using Go's [forward compatibility mechanism][go-toolchain] for updating the Go version. This means that if your `go` version is 1.21+ but is different from the one required by AdGuard Home, the `go` tool will automatically download the required version.
the Go version. This means that if your `go` version is 1.21+ but is different
from the one required by AdGuard Home, the `go` tool will automatically download
the required version.
If you want to use the version installed on your builder, run: If you want to use the version installed on your builder, run:
@ -103,220 +79,164 @@ and call `make` with `GOTOOLCHAIN=local`.
[go-toolchain]: https://go.dev/blog/toolchain [go-toolchain]: https://go.dev/blog/toolchain
### `go-bench.sh`: Run backend benchmarks
### `go-bench.sh`: Run backend benchmarks
Optional environment: Optional environment:
* `GO`: set an alternative name for the Go compiler. - `GO`: set an alternative name for the Go compiler.
* `TIMEOUT_FLAGS`: set timeout flags for tests. The default value is - `TIMEOUT_FLAGS`: set timeout flags for tests. The default value is `--timeout=30s`.
`--timeout=30s`.
* `VERBOSE`: verbosity level. `1` shows every command that is run and every - `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 package that is processed. `2` also shows subcommands and environment.
The default value is `0`, don't be verbose.
### `go-build.sh`: Build the backend
### `go-build.sh`: Build the backend
Optional environment: Optional environment:
* `GOAMD64`: architectural level for [AMD64][amd64]. The default value is - `GOAMD64`: architectural level for [AMD64][amd64]. The default value is `v1`.
`v1`.
* `GOARM`: ARM processor options for the Go compiler. - `GOARM`: ARM processor options for the Go compiler.
* `GOMIPS`: ARM processor options for the Go compiler. - `GOMIPS`: ARM processor options for the Go compiler.
* `GO`: set an alternative name for the Go compiler. - `GO`: set an alternative name for the Go compiler.
* `OUT`: output binary name. - `OUT`: output binary name.
* `PARALLELISM`: set the maximum number of concurrently run build commands - `PARALLELISM`: set the maximum number of concurrently run build commands (that is, compiler, linker, etc.).
(that is, compiler, linker, etc.).
* `SOURCE_DATE_EPOCH`: the [standardized][repr] environment variable for the - `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.
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 - `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 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 - `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`.
if it has the default `Makefile` value of `v0.0.0`.
Required environment: Required environment:
* `CHANNEL`: release channel, see above. - `CHANNEL`: release channel, see above.
[amd64]: https://github.com/golang/go/wiki/MinimumRequirements#amd64 [amd64]: https://github.com/golang/go/wiki/MinimumRequirements#amd64
[repr]: https://reproducible-builds.org/docs/source-date-epoch/ [repr]: https://reproducible-builds.org/docs/source-date-epoch/
### `go-deps.sh`: Install backend dependencies
### `go-deps.sh`: Install backend dependencies
Optional environment: Optional environment:
* `GO`: set an alternative name for the Go compiler. - `GO`: set an alternative name for the Go compiler.
* `VERBOSE`: verbosity level. `1` shows every command that is run and every - `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 package that is processed. `2` also shows subcommands and environment.
The default value is `0`, don't be verbose.
### `go-fuzz.sh`: Run backend fuzz tests
### `go-fuzz.sh`: Run backend fuzz tests
Optional environment: Optional environment:
* `GO`: set an alternative name for the Go compiler. - `GO`: set an alternative name for the Go compiler.
* `FUZZTIME_FLAGS`: set fuss flags for tests. The default value is - `FUZZTIME_FLAGS`: set fuss flags for tests. The default value is `--fuzztime=20s`.
`--fuzztime=20s`.
* `TIMEOUT_FLAGS`: set timeout flags for tests. The default value is - `TIMEOUT_FLAGS`: set timeout flags for tests. The default value is `--timeout=30s`.
`--timeout=30s`.
* `VERBOSE`: verbosity level. `1` shows every command that is run and every - `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 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
### `go-lint.sh`: Run backend static analyzers
Don't forget to run `make go-tools` once first! Don't forget to run `make go-tools` once first!
Optional environment: Optional environment:
* `EXIT_ON_ERROR`: if set to `0`, don't exit the script after the first - `EXIT_ON_ERROR`: if set to `0`, don't exit the script after the first encountered error. The default value is `1`.
encountered error. The default value is `1`.
* `GO`: set an alternative name for the Go compiler. - `GO`: set an alternative name for the Go compiler.
* `VERBOSE`: verbosity level. `1` shows every command that is run. `2` also - `VERBOSE`: verbosity level. `1` shows every command that is run. `2` also shows subcommands. The default value is `0`, don't be verbose.
shows subcommands. The default value is `0`, don't be verbose.
### `go-test.sh`: Run backend tests
### `go-test.sh`: Run backend tests
Optional environment: Optional environment:
* `GO`: set an alternative name for the Go compiler. - `GO`: set an alternative name for the Go compiler.
* `RACE`: set to `0` to not use the Go race detector. The default value is - `RACE`: set to `0` to not use the Go race detector. The default value is `1`, use the race detector.
`1`, use the race detector.
* `TIMEOUT_FLAGS`: set timeout flags for tests. The default value is - `TIMEOUT_FLAGS`: set timeout flags for tests. The default value is `--timeout=30s`.
`--timeout=30s`.
* `VERBOSE`: verbosity level. `1` shows every command that is run and every - `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 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`).
### `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: Optional environment:
* `GO`: set an alternative name for the Go compiler. - `GO`: set an alternative name for the Go compiler.
### `version.sh`: Generate And Print The Current Version
### `version.sh`: Generate And Print The Current Version
Required environment: Required environment:
* `CHANNEL`: release channel, see above. - `CHANNEL`: release channel, see above.
## `snap/`: Snapcraft scripts ## `snap/`: Snapcraft scripts
### `build.sh` ### `build.sh`
Builds the Snapcraft packages from the binaries created by `download.sh`. Builds the Snapcraft packages from the binaries created by `download.sh`.
### `download.sh` ### `download.sh`
Downloads the binaries to pack them into Snapcraft packages. Downloads the binaries to pack them into Snapcraft packages.
Required environment: Required environment:
* `CHANNEL`: release channel, see above. - `CHANNEL`: release channel, see above.
### `upload.sh` ### `upload.sh`
Uploads the Snapcraft packages created by `build.sh`. Uploads the Snapcraft packages created by `build.sh`.
Required environment: Required environment:
* `SNAPCRAFT_CHANNEL`: Snapcraft release channel: `edge`, `beta`, or - `SNAPCRAFT_CHANNEL`: Snapcraft release channel: `edge`, `beta`, or `candidate`.
`candidate`.
* `SNAPCRAFT_STORE_CREDENTIALS`: Credentials for Snapcraft store. - `SNAPCRAFT_STORE_CREDENTIALS`: Credentials for Snapcraft store.
Optional environment: Optional environment:
* `SNAPCRAFT_CMD`: Overrides the Snapcraft command. Default: `snapcraft`. - `SNAPCRAFT_CMD`: Overrides the Snapcraft command. Default: `snapcraft`.
## `translations/`: Twosky Integration Script ## `translations/`: Twosky Integration Script
### Usage ### Usage
* `go run ./scripts/translations help`: print usage. - `go run ./scripts/translations help`: print usage.
* `go run ./scripts/translations download [-n <count>]`: download and save - `go run ./scripts/translations download [-n <count>]`: download and save all translations. `n` is optional flag where count is a number of concurrent downloads.
all translations. `n` is optional flag where count is a number of
concurrent downloads.
* `go run ./scripts/translations upload`: upload the base `en` locale. - `go run ./scripts/translations upload`: upload the base `en` locale.
* `go run ./scripts/translations summary`: show the current locales summary. - `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 unused`: show the list of unused strings.
* `go run ./scripts/translations auto-add`: add locales with additions to the - `go run ./scripts/translations auto-add`: add locales with additions to the git and restore locales with deletions.
git and restore locales with deletions.
After the download you'll find the output locales in the `client/src/__locales/` After the download you'll find the output locales in the `client/src/__locales/` directory.
directory.
Optional environment: Optional environment:
* `DOWNLOAD_LANGUAGES`: set a list of specific languages to `download`. For - `DOWNLOAD_LANGUAGES`: set a list of specific languages to `download`. For example `ar be bg`. If it set to `blocker` 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`).
example `ar be bg`. If it set to `blocker` 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 for `upload`. - `UPLOAD_LANGUAGE`: set an alternative language for `upload`.
* `TWOSKY_URI`: set an alternative URL for `download` or `upload`. - `TWOSKY_URI`: set an alternative URL for `download` or `upload`.
* `TWOSKY_PROJECT_ID`: set an alternative project ID for `download` or - `TWOSKY_PROJECT_ID`: set an alternative project ID for `download` or `upload`.
`upload`.
## `companiesdb/`: Whotracks.me database converter
A simple script that downloads and updates the companies DB in the `client` code from [the repo][companiesrepo].
## `companiesdb/`: Whotracks.me Database Converter ### Usage
A simple script that downloads and updates the companies DB in the `client`
code from [the repo][companiesrepo].
### Usage
```sh ```sh
sh ./scripts/companiesdb/download.sh sh ./scripts/companiesdb/download.sh
@ -324,19 +244,15 @@ sh ./scripts/companiesdb/download.sh
[companiesrepo]: https://github.com/AdguardTeam/companiesdb [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].
## `blocked-services/`: Blocked Services Updater
A simple script that downloads and updates the blocked services index from
AdGuard's [Hostlists Registry][reg].
Optional environment: Optional environment:
* `URL`: the URL of the index file. By default it's - `URL`: the URL of the index file. By default it's `https://adguardteam.github.io/HostlistsRegistry/assets/services.json`.
`https://adguardteam.github.io/HostlistsRegistry/assets/services.json`.
### Usage ### Usage
```sh ```sh
go run ./scripts/blocked-services/main.go go run ./scripts/blocked-services/main.go
@ -344,19 +260,15 @@ go run ./scripts/blocked-services/main.go
[reg]: https://github.com/AdguardTeam/HostlistsRegistry [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].
## `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: Optional environment:
* `URL`: the URL of the index file. By default it's - `URL`: the URL of the index file. By default it's `https://adguardteam.github.io/HostlistsRegistry/assets/filters.json`.
`https://adguardteam.github.io/HostlistsRegistry/assets/filters.json`.
### Usage ### Usage
```sh ```sh
go run ./scripts/vetted-filters/main.go go run ./scripts/vetted-filters/main.go

View File

@ -8,14 +8,21 @@
verbose="${VERBOSE:-0}" verbose="${VERBOSE:-0}"
readonly verbose readonly verbose
set -e -f -u # Don't use -f, because we use globs in this script.
set -e -u
if [ "$verbose" -gt '0' ]; then if [ "$verbose" -gt '0' ]; then
set -x set -x
fi fi
# TODO(e.burkov): Lint allmarkdown documents within this project. # TODO(e.burkov): Add README.md and possibly AGHTechDoc.md.
markdownlint \ markdownlint \
./CHANGELOG.md \ ./CHANGELOG.md \
./openapi/CHANGELOG.md \ ./CONTRIBUTING.md \
./HACKING.md \
./SECURITY.md \
./internal/next/changelog.md \
./internal/dhcpd/*.md \
./openapi/*.md \
./scripts/*.md \
; ;