summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/app.c7
-rw-r--r--src/html.c37
2 files changed, 10 insertions, 34 deletions
diff --git a/src/app.c b/src/app.c
index 9d1ee7a..976d51e 100644
--- a/src/app.c
+++ b/src/app.c
@@ -21,16 +21,19 @@ static void sqliteError(void *pArg, int iErrCode, const char *zMsg) {
static int generate_secret(char *out) {
unsigned char bytes[16];
int fd = open("/dev/urandom", O_RDONLY);
- if (fd < 0) return -1;
+ if (fd < 0) abort();
ssize_t n = read(fd, bytes, 16);
close(fd);
- if (n != 16) return -1;
+
+ if (n != 16) abort();
+
static const char hex[] = "0123456789abcdef";
for (int i = 0; i < 16; i++) {
out[i*2] = hex[(bytes[i] >> 4) & 0x0f];
out[i*2+1] = hex[bytes[i] & 0x0f];
}
out[32] = '\0';
+
return 0;
}
diff --git a/src/html.c b/src/html.c
index 10a6848..c843b51 100644
--- a/src/html.c
+++ b/src/html.c
@@ -440,14 +440,6 @@ char *html_render_client_detail_page(const char *host, const struct GetClientOnl
" <title>BorgFlag - %s</title>\n", client_result->name);
emit_stylesheet(f);
fprintf(f,
- "<script>\n"
- "function copy(btn) {\n"
- " navigator.clipboard.writeText(btn.closest('pre').innerText.replace('Copy','').trim()).then(() => {\n"
- " btn.textContent = 'Copied!';\n"
- " setTimeout(() => btn.textContent = 'Copy', 2000);\n"
- " });\n"
- "}\n"
- "</script>\n"
"</head>\n"
"<body>\n"
" <header>\n"
@@ -476,36 +468,17 @@ char *html_render_client_detail_page(const char *host, const struct GetClientOnl
" <code>Secret: %s</code>\n"
" </article>\n"
" <details>\n"
- " <summary>API Snippets</summary>\n"
+ " <summary>How To</summary>\n"
" <div>\n"
- " <div>\n"
- " <h4>Start backup</h4>\n"
- " <pre><span class=\"cmd\">curl</span> <span class=\"flag\">-X POST</span> <span class=\"url\">http://%s/api/report</span> \\\n"
- " <span class=\"flag\">-H</span> <span class=\"val\">\"Content-Type: application/json\"</span> \\\n"
- " <span class=\"flag\">-d</span> <span class=\"val\">'{</span>\n"
- " <span class=\"key\">\"client\"</span>: <span class=\"val\">\"%s\"</span>,\n"
- " <span class=\"key\">\"secret\"</span>: <span class=\"secret\">\"%s\"</span>,\n"
- " <span class=\"key\">\"event\"</span>: <span class=\"val\">\"begin_backup\"</span>\n"
- " <span class=\"val\">}'</span><button onclick=\"copy(this)\">Copy</button></pre>\n"
- " </div>\n"
- " <div>\n"
- " <h4>End backup</h4>\n"
- " <pre><span class=\"cmd\">curl</span> <span class=\"flag\">-X POST</span> <span class=\"url\">http://%s/api/report</span> \\\n"
- " <span class=\"flag\">-H</span> <span class=\"val\">\"Content-Type: application/json\"</span> \\\n"
- " <span class=\"flag\">-d</span> <span class=\"val\">'{</span>\n"
- " <span class=\"key\">\"client\"</span>: <span class=\"val\">\"%s\"</span>,\n"
- " <span class=\"key\">\"secret\"</span>: <span class=\"secret\">\"%s\"</span>,\n"
- " <span class=\"key\">\"event\"</span>: <span class=\"val\">\"end_backup\"</span>\n"
- " <span class=\"val\">}'</span><button onclick=\"copy(this)\">Copy</button></pre>\n"
- " </div>\n"
+ " <pre><code>curl -s -X POST %s \\\n"
+ " -H \"Content-Type: application/json\" \\\n"
+ " -d \'{\"client\": \"%s\", \"secret\": \"%s\", \"event\": \"begin_backup\"}\'"
+ "</pre></code>\n"
" </div>\n"
" </details>\n",
client_result->secret,
host ? host : "localhost",
client_result->name,
- client_result->secret,
- host ? host : "localhost",
- client_result->name,
client_result->secret
);