Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/README.md
blob: b09e5b5ab1e1941b7903d83494ce28328a705e6a (plain)
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
48
49
50
51
<!-- SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> -->
<!-- SPDX-License-Identifier: MPL-2.0 WITH AdditionRef-Progmasoft-Exception-2.0 -->

# Tazelish

Tazelish installs [Tazel](https://tazel.net/) and chooses which version of it runs. It is for those who use Tazel
alone; the toolchain manager of the whole of Tala is Talup. Tazelish runs on Linux (glibc 2.39 or newer, or musl 1.2.4
or newer), macOS 14 or newer and Windows with PowerShell 5.1; it does not run on BSD.

```text
tazelish install 0.4.0.3              a release: MAJOR.SEMIMAJOR.MINOR.PATCH
tazelish install unstable             the newest unstable build
tazelish install nightly              the newest nightly build
tazelish install 2026-11-05-nightly   the nightly build of a day
tazelish use [--force] 0.4.0.3        writes the version to ./tazelish.txt
tazelish default [--force] nightly    writes the version to the config.txt of the user
tazelish self update|remove|purge
tazelish help [command]
```

`tazelish.txt` and `config.txt` hold one version each, written as it is written after `tazelish install`. The nearest
`tazelish.txt`, in the current folder or a folder above it, comes first; `config.txt`, at `$HOME/.tazelish/config.txt`
or `%USERPROFILE%\.tazelish\config.txt`, counts where none names a version. `use` and `default` refuse to write over a
file that exists unless `--force` is given.

This build reads the command line, the versions and both files. `install` and `self` download from
`static.tazel.net`, which this build does not do; they end with exit code 1.

## Building

Tazelish is C++17, built with Bazel through Bazelisk:

```bash
bazelisk test //...
bazelisk build //:tazelish
```

On Windows it is compiled by clang-cl: set `BAZEL_LLVM` to the folder of an LLVM installation first, for example
`C:\Program Files\LLVM`. The code of Tazelish throws no exceptions and builds with warnings as errors.

| Folder | Holds |
| --- | --- |
| `Headers/Progmasoft/Tazelish/` | the interfaces: versions, the command line, the version files, the help |
| `Sources/` | their implementation and `Main.cpp` |
| `Tests/` | the tests, written with [Catch3](https://github.com/Progmasoft/catch3) |
| `Build/` | a patch of rules_cc for clang-cl |

## Licence

MPL-2.0 with the Progmasoft Exception 2.0; see [LICENSE.txt](LICENSE.txt) and
[LICENSES/](LICENSES/AdditionRef-Progmasoft-Exception-2.0.txt).