diff --git a/.env b/.env new file mode 100644 index 0000000..53572fc --- /dev/null +++ b/.env @@ -0,0 +1 @@ +API_TOKEN= diff --git a/.gitignore b/.gitignore index b2be92b..64c580c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ result +.env diff --git a/justfile b/justfile index 53593d2..5ed3b4d 100644 --- a/justfile +++ b/justfile @@ -1,5 +1,21 @@ +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 @@ -8,7 +24,18 @@ _default: _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 +