# Development

## Clone the repository

```bash
git clone https://gitlab.com/ahoneybun/nyxi-installer.git
```

## Enter the repository that you just cloned

```bash
cd nyxi-installer
```

## Enter nix-shell

This is if you are already running NixOS or using the `nix` packagemanager on your system where development will take place. This will install the needed system packages, set environment variables and such for development.

```bash
nix-shell
```

## Flakes

If you have flakes enabled you can use `nix develop` instead.

```bash
nix develop
```

## Ubuntu

Install these packages for developing using `apt`.

```bash
sudo apt install build-essential pkg-config libcurl4-openssl-dev libfdisk-dev
```

## Building and testing

You can use normal `cargo` commands like:

- `cargo test`
- `cargo build`
- `cargo run`

**NOTE:** you will need to build the program and run it with `sudo` currently so `cargo run` is not the best for testing.