Metadata-Version: 2.1
Name: mybox
Version: 0.0.17
Summary: Manage the configuration and tools on your workstation without bothering the OS too much
Home-page: https://github.com/koterpillar/mybox
License: GPL-3.0-or-later
Author: Alexey Kotlyarov
Author-email: a@koterpillar.com
Requires-Python: >=3.9,<4.0
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: PyYAML (>=6.0,<7.0)
Requires-Dist: requests (>=2.28.1,<3.0.0)
Requires-Dist: tqdm (>=4.64.0,<5.0.0)
Project-URL: Repository, https://github.com/koterpillar/mybox
Description-Content-Type: text/markdown

# Mybox

🖥️ This is a box. 📦 And it is mine. 🐱

There are many 🍱 nice things in there. I wouldn't want 🧰 to be without them.

Even if I move 🏠 or work 🏢 I want to be comfortable.

---

Manage the configuration and tools on your workstation without bothering the OS
too much (maybe your favorite one isn't supported by `$WORK` or you have
different ones for different roles).

## Usage

* Run the [bootstrap](bootstrap) script:

  ```shell
  /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/koterpillar/mybox/main/bootstrap)"
  ```

* Run `mybox` from the directory with package definitions.

  For package definition examples, see
  [koterpillar/desktop](https://github.com/koterpillar/desktop/).

* To install optional components, add their names as arguments, e.g.
  `mybox development`.

## Development

Pre-requisites (see [install-dev](install-dev) for ways to install):

* [Poetry](https://python-poetry.org/)
* [ShellCheck](https://www.shellcheck.net/)

Run [`./lint`](lint) to check style & types, `./lint --format` to apply
formatting automatically.

### Running locally

* Run `poetry install`.
* Run `poetry shell`.
* In the launched shell, go to the directory with package definitions.
* Run `mybox` with the desired arguments.

### Releasing

Create and push a signed Git tag of the format `vX.Y.Z`. The release will be
done using GitHub actions.

