lima-vm / lima-vm/lima

Machine-readable variant of the `start` progress output

Open
#1,316 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
21.9k
Forks
957
Avg merge
2d 6h
Merged PRs (30d)
53

Description

### Description

After adding the human-readable variant of the progress in #1311, a machine-readable variant is also useful.

The plan was to use it for the GUI, to show a progress dialog instead of just spinning the cursor (like today)

https://doc.qt.io/qt-5/qprogressdialog.html#details

Human readable:

```
Starting "default"
Waiting 1 / 8 [--->________________________] "ssh" (essential 1/5)
Waiting 2 / 8 [------>_____________________] "user session is ready for ssh" (essential 2/5)
Waiting 3 / 8 [---------->_________________] "sshfs binary to be installed" (essential 3/5)
Waiting 4 / 8 [------------->______________] "fuse to \"allow_other\" as user" (essential 4/5)
Waiting 5 / 8 [----------------->__________] "the guest agent to be running" (essential 5/5)
Waiting 6 / 8 [-------------------->_______] "systemd must be available" (optional 1/2)
Waiting 7 / 8 [------------------------>___] "containerd binaries to be installed" (optional 2/2)
Waiting 8 / 8 [----------------------------] "boot scripts must have finished" (final 1/1)
READY.
```

Machine readable:

```json
{"name":"default","progress":"Booting"}
{"name":"default","requirement":{"label":"essential","number":1,"count":5,"description":"ssh","index":0,"total":8}}
{"name":"default","requirement":{"label":"essential","number":2,"count":5,"description":"user session is ready for ssh","index":1,"total":8}}
{"name":"default","requirement":{"label":"essential","number":3,"count":5,"description":"sshfs binary to be installed","index":2,"total":8}}
{"name":"default","requirement":{"label":"essential","number":4,"count":5,"description":"fuse to \"allow_other\" as user","index":3,"total":8}}
{"name":"default","requirement":{"label":"essential","number":5,"count":5,"description":"the guest agent to be running","index":4,"total":8}}
{"name":"default","requirement":{"label":"optional","number":1,"count":2,"description":"systemd must be available","index":5,"total":8}}
{"name":"default","requirement":{"label":"optional","number":2,"count":2,"description":"containerd binaries to be installed","index":6,"total":8}}
{"name":"default","requirement":{"label":"final","number":1,"count":1,"description":"boot scripts must have finished","index":7,"total":8}}
{"name":"default","progress":"Running"}
```

It would also affect the download output...

It needs a special `pb` template, for JSON lines.

And also a JSON wrapper, for the message.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.