about summary refs log tree commit diff
path: root/users/wpcarro/tools/url-blocker/README.md
blob: a6063f32562da3f8a539d71a74f966873ee545bb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# url-blocker

`url-blocker` blocks the URLs that you want to block when you want it to block
them.

Let's say that you don't want to visit Twitter during the work week. Create the
file `~/.config/url-blocker/rules.json` with the following contents and
`url-blocker` will take care of the rest.

```json
# ~/.config/url-blocker/rules.json
[
  {
    "urls": [
      "twitter.com",
      "www.twitter.com",
    ],
    "allowed": [
      {
        "day": "Saturday",
        "timeslots": [
          "00:00-11:59"
        ]
      },
      {
        "day": "Sunday",
        "timeslots": [
          "00:00-11:59"
        ]
      }
    ]
  }
]
```

## Installation

```shell
$ nix-env -iA users.wpcarro.tools.url-blocker
```

## How does it work?

`systemd` is intended to run `url-blocker` once every minute. `url-blocker` will
read `/etc/hosts` and map the URLs defined in `rules.json` to `127.0.0.1` when
you want them blocked. Because `systemd` run once every minute, `/etc/hosts`
should be current to the minute as well.