42 lines
860 B
Makefile
42 lines
860 B
Makefile
set dotenv-required
|
|
set quiet := true
|
|
|
|
UPLOAD_URL := ```
|
|
curl -s -X POST \
|
|
--url https://api.linode.com/v4/images/upload \
|
|
--header 'accept: application/json' \
|
|
--header "authorization: Bearer $API_TOKEN" \
|
|
--header 'content-type: application/json' \
|
|
--data '
|
|
{
|
|
"description": "nixos",
|
|
"label": "nixos",
|
|
"region": "us-iad"
|
|
}
|
|
' | jq .upload_to
|
|
```
|
|
|
|
[private]
|
|
_default:
|
|
just --list
|
|
|
|
[private]
|
|
_clean:
|
|
rm -f result
|
|
|
|
[private]
|
|
_image_exists:
|
|
[ -f result/linode-image.img.gz ] \
|
|
|| echo "Linode image not found."
|
|
|
|
[doc('Builds Linode compatible NixOS disk image.')]
|
|
build-image: _clean
|
|
nix build ".#nixosConfigurations.linode-image.config.system.build.raw"
|
|
|
|
[doc('Uploads NixOS compatible disk image to Linode.')]
|
|
upload-image: _image_exists
|
|
curl -X PUT \
|
|
--url {{UPLOAD_URL}} \
|
|
-T result/linode-image.img.gz
|
|
|