Assorted shell and Python scripts
1#!/usr/bin/env nu
2
3let refresh_token = (open ($env.HOME | path join .netcup_refresh_token.json) | get refresh_token)
4
5def get_access_token [refresh_token] {
6 (curl -s "https://www.servercontrolpanel.de/realms/scp/protocol/openid-connect/token" -d "client_id=scp" -d $"refresh_token=($refresh_token)" -d "grant_type=refresh_token")
7 | from json
8 | get access_token
9}
10
11def get_servers [access_token] {
12 (curl -s -X "GET" "https://www.servercontrolpanel.de/scp-core/api/v1/servers" -H $"Authorization: Bearer ($access_token)" -H "accept: application/hal+json")
13 | from json
14}
15
16let access_token = (get_access_token ($refresh_token))
17let servers = (get_servers ($access_token))
18
19let date_now = (date now | format date "%Y%m%d")
20
21($servers | get id) | each {
22 (curl -s -X "POST" $"https://www.servercontrolpanel.de/scp-core/api/v1/servers/($in)/snapshots" -H $"Authorization: Bearer ($access_token)" -H "accept: application/hal+json" -H "Content-Type: application/json" -d $'{"name": "($date_now)", "description": "via script", "diskName": "vda", "onlineSnapshot": false}')
23 | from json
24}
25
26# vim: sw=4 sts=4 ts=4 ai et ft=nu