mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
```[tasklist] ### Before merging - [x] Make sure the service auto-starts - [x] Make the process idle and report its status to Windows properly using https://github.com/mullvad/windows-service-rs - [x] DRY log dir code - [x] Figure out where service logs will go and how the GUI will zip them - [x] Make sure the service gets a shut down signal from Windows (this is hard to catch in the Tauri GUI) - [x] Make sure the service restarts when Firezone is updated - [x] Make sure the service is stopped and un-installed when Firezone is un-installed - [x] Add test to install the MSI and check that the service runs - [x] (will move to another PR) ~~Clean up function names~~ - [x] Make sure the Linux GUI was not broken by refactoring ```
Firezone shell scripts
This directory contains various shell scripts used for development, testing, and deployment of the Firezone product.
Developer Setup
We lint shell scripts in CI. To get your PR to pass, you'll want to ensure your local development environment is set up to lint shell scripts:
- Install
shfmt:brew install shfmton macOS- Install shfmt from https://github.com/mvdan/sh/releases for other platforms
- Install
shellcheck:brew install shellcheckon macOSsudo apt-get install shellcheckon Ubuntu
Then just lint and format your shell scripts before you commit:
shfmt -i 4 **/*.sh
shellcheck --severity=warning **/*.sh
You can achieve this more easily by using pre-commit. See
CONTRIBUTING.
Editor setup
- Vim (here's an example using ALE)
- VSCode
Scripting tips
- Use
#!/usr/bin/env bashalong withset -euox pipefailin general for dev and test scripts. - In Docker images and other minimal envs, stick to
#!/bin/shand simplyset -eu.