notedux 1.0.9 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/notedux +127 -34
- package/package.json +2 -5
package/notedux
CHANGED
|
@@ -11,10 +11,96 @@
|
|
|
11
11
|
CONFIG_FILE="$HOME/.notedux.conf"
|
|
12
12
|
API="https://notedux.com/api/note"
|
|
13
13
|
|
|
14
|
+
# -------------------------
|
|
15
|
+
# Platform / dependency check
|
|
16
|
+
# -------------------------
|
|
17
|
+
|
|
18
|
+
# Detects OS and picks a clipboard command. Exits with a helpful message
|
|
19
|
+
# if something required is missing.
|
|
20
|
+
check_compatibility() {
|
|
21
|
+
|
|
22
|
+
OS_NAME="$(uname -s)"
|
|
23
|
+
|
|
24
|
+
case "$OS_NAME" in
|
|
25
|
+
Darwin)
|
|
26
|
+
PLATFORM="mac"
|
|
27
|
+
;;
|
|
28
|
+
Linux)
|
|
29
|
+
PLATFORM="linux"
|
|
30
|
+
;;
|
|
31
|
+
*)
|
|
32
|
+
echo "Error: unsupported operating system ($OS_NAME)."
|
|
33
|
+
echo "Notedux CLI supports macOS and Linux only."
|
|
34
|
+
exit 1
|
|
35
|
+
;;
|
|
36
|
+
esac
|
|
37
|
+
|
|
38
|
+
# curl is required everywhere
|
|
39
|
+
if ! command -v curl &>/dev/null; then
|
|
40
|
+
echo "Error: 'curl' is required but not installed."
|
|
41
|
+
case "$PLATFORM" in
|
|
42
|
+
mac)
|
|
43
|
+
echo "Install it with: brew install curl"
|
|
44
|
+
;;
|
|
45
|
+
linux)
|
|
46
|
+
echo "Install it with your package manager, e.g.:"
|
|
47
|
+
echo " sudo apt install curl (Debian/Ubuntu)"
|
|
48
|
+
echo " sudo dnf install curl (Fedora)"
|
|
49
|
+
echo " sudo pacman -S curl (Arch)"
|
|
50
|
+
;;
|
|
51
|
+
esac
|
|
52
|
+
exit 1
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
# Clipboard tool: pick the first available one per platform.
|
|
56
|
+
CLIPBOARD_CMD=""
|
|
57
|
+
|
|
58
|
+
if [ "$PLATFORM" = "mac" ]; then
|
|
59
|
+
if command -v pbcopy &>/dev/null; then
|
|
60
|
+
CLIPBOARD_CMD="pbcopy"
|
|
61
|
+
fi
|
|
62
|
+
else
|
|
63
|
+
if command -v xclip &>/dev/null; then
|
|
64
|
+
CLIPBOARD_CMD="xclip -selection clipboard"
|
|
65
|
+
elif command -v xsel &>/dev/null; then
|
|
66
|
+
CLIPBOARD_CMD="xsel --clipboard --input"
|
|
67
|
+
elif command -v wl-copy &>/dev/null; then
|
|
68
|
+
CLIPBOARD_CMD="wl-copy"
|
|
69
|
+
fi
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
# No clipboard tool found - warn once, don't block usage.
|
|
73
|
+
if [ -z "$CLIPBOARD_CMD" ]; then
|
|
74
|
+
CLIPBOARD_WARNED=1
|
|
75
|
+
if [ "$PLATFORM" = "mac" ]; then
|
|
76
|
+
echo "Warning: 'pbcopy' not found. Links will not be copied to clipboard."
|
|
77
|
+
else
|
|
78
|
+
echo "Warning: no clipboard tool found (xclip, xsel, or wl-copy)."
|
|
79
|
+
echo "Links will not be copied to clipboard. Install one with, e.g.:"
|
|
80
|
+
echo " sudo apt install xclip (Debian/Ubuntu, X11)"
|
|
81
|
+
echo " sudo dnf install xclip (Fedora, X11)"
|
|
82
|
+
echo " sudo pacman -S xclip (Arch, X11)"
|
|
83
|
+
echo " sudo apt install wl-clipboard (Wayland)"
|
|
84
|
+
fi
|
|
85
|
+
fi
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
# Copies stdin to the clipboard using whatever tool was detected.
|
|
89
|
+
# Silently does nothing if no clipboard tool is available.
|
|
90
|
+
copy_to_clipboard() {
|
|
91
|
+
if [ -n "$CLIPBOARD_CMD" ]; then
|
|
92
|
+
eval "$CLIPBOARD_CMD"
|
|
93
|
+
else
|
|
94
|
+
cat >/dev/null
|
|
95
|
+
fi
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
14
99
|
show_help() {
|
|
15
100
|
cat <<EOF
|
|
16
101
|
|
|
17
102
|
Notedux CLI - Command-line client for the Notedux service (notedux.com).
|
|
103
|
+
Version 1.0.11
|
|
18
104
|
Copyright (C) 2026 Dejan Sabados
|
|
19
105
|
Licensed under the GNU GPL v3 or later.
|
|
20
106
|
This program comes with ABSOLUTELY NO WARRANTY.
|
|
@@ -43,7 +129,7 @@ Examples:
|
|
|
43
129
|
notedux generate
|
|
44
130
|
notedux add "Do one thing and do it well."
|
|
45
131
|
notedux show
|
|
46
|
-
notedux
|
|
132
|
+
notedux del 3
|
|
47
133
|
|
|
48
134
|
EOF
|
|
49
135
|
}
|
|
@@ -148,13 +234,17 @@ show_note() {
|
|
|
148
234
|
echo ""
|
|
149
235
|
HTTP_CODE=$(echo "$RESPONSE" | tail -n1)
|
|
150
236
|
RESPONSE=$(echo "$RESPONSE" | sed '$d')
|
|
151
|
-
|
|
237
|
+
|
|
152
238
|
LINK=$(grep -i '^x-note-link:' "$HEADERS" | cut -d' ' -f2- | tr -d '\r')
|
|
153
239
|
if [ "$HTTP_CODE" == "200" ]; then
|
|
154
240
|
echo "$RESPONSE"| nl -ba
|
|
155
241
|
echo ""
|
|
156
|
-
echo
|
|
157
|
-
|
|
242
|
+
echo "$LINK" | copy_to_clipboard
|
|
243
|
+
if [ -n "$CLIPBOARD_CMD" ]; then
|
|
244
|
+
echo -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
|
|
245
|
+
else
|
|
246
|
+
echo -e "Link: \033[1;34m$LINK\033[0m"
|
|
247
|
+
fi
|
|
158
248
|
else
|
|
159
249
|
echo "$RESPONSE"
|
|
160
250
|
echo ""
|
|
@@ -189,8 +279,12 @@ add_note() {
|
|
|
189
279
|
echo ""
|
|
190
280
|
LINK="https://notedux.com/n/$TOKEN"
|
|
191
281
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
192
|
-
echo
|
|
193
|
-
|
|
282
|
+
echo "$LINK" | copy_to_clipboard
|
|
283
|
+
if [ -n "$CLIPBOARD_CMD" ]; then
|
|
284
|
+
echo -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
|
|
285
|
+
else
|
|
286
|
+
echo -e "Link: \033[1;34m$LINK\033[0m"
|
|
287
|
+
fi
|
|
194
288
|
fi
|
|
195
289
|
}
|
|
196
290
|
|
|
@@ -220,8 +314,12 @@ set_note() {
|
|
|
220
314
|
echo ""
|
|
221
315
|
LINK="https://notedux.com/n/$TOKEN"
|
|
222
316
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
223
|
-
echo
|
|
224
|
-
|
|
317
|
+
echo "$LINK" | copy_to_clipboard
|
|
318
|
+
if [ -n "$CLIPBOARD_CMD" ]; then
|
|
319
|
+
echo -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
|
|
320
|
+
else
|
|
321
|
+
echo -e "Link: \033[1;34m$LINK\033[0m"
|
|
322
|
+
fi
|
|
225
323
|
fi
|
|
226
324
|
;;
|
|
227
325
|
*)
|
|
@@ -251,8 +349,12 @@ delete_all() {
|
|
|
251
349
|
echo ""
|
|
252
350
|
LINK="https://notedux.com/n/$TOKEN"
|
|
253
351
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
254
|
-
echo
|
|
255
|
-
|
|
352
|
+
echo "$LINK" | copy_to_clipboard
|
|
353
|
+
if [ -n "$CLIPBOARD_CMD" ]; then
|
|
354
|
+
echo -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
|
|
355
|
+
else
|
|
356
|
+
echo -e "Link: \033[1;34m$LINK\033[0m"
|
|
357
|
+
fi
|
|
256
358
|
fi
|
|
257
359
|
;;
|
|
258
360
|
*)
|
|
@@ -262,24 +364,6 @@ delete_all() {
|
|
|
262
364
|
}
|
|
263
365
|
|
|
264
366
|
|
|
265
|
-
delete_last() {
|
|
266
|
-
|
|
267
|
-
if ! confirm "Delete last line"; then
|
|
268
|
-
echo "Cancelled."
|
|
269
|
-
exit
|
|
270
|
-
fi
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
RESPONSE=$(curl -s -X POST "$API/dellast" \
|
|
274
|
-
--data-urlencode "token=$TOKEN")
|
|
275
|
-
|
|
276
|
-
echo "$RESPONSE"
|
|
277
|
-
# get and show the link to the note
|
|
278
|
-
LINK=$(echo "$RESPONSE" | grep -o '"link"[ ]*:[ ]*"[^"]*"' | sed 's/.*:\s*"//;s/"//')
|
|
279
|
-
echo "$LINK" | pbcopy
|
|
280
|
-
echo -e "\033[1;34m$LINK\033[0m"
|
|
281
|
-
echo "Copied to clipboard."
|
|
282
|
-
}
|
|
283
367
|
delete_last() {
|
|
284
368
|
|
|
285
369
|
read -p "Delete last line. Are you sure ? [y/N] " answer
|
|
@@ -299,8 +383,12 @@ delete_last() {
|
|
|
299
383
|
echo ""
|
|
300
384
|
LINK="https://notedux.com/n/$TOKEN"
|
|
301
385
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
302
|
-
echo
|
|
303
|
-
|
|
386
|
+
echo "$LINK" | copy_to_clipboard
|
|
387
|
+
if [ -n "$CLIPBOARD_CMD" ]; then
|
|
388
|
+
echo -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
|
|
389
|
+
else
|
|
390
|
+
echo -e "Link: \033[1;34m$LINK\033[0m"
|
|
391
|
+
fi
|
|
304
392
|
fi
|
|
305
393
|
;;
|
|
306
394
|
*)
|
|
@@ -310,11 +398,11 @@ delete_last() {
|
|
|
310
398
|
}
|
|
311
399
|
|
|
312
400
|
delete_line() {
|
|
313
|
-
|
|
401
|
+
|
|
314
402
|
NUMBER="$1"
|
|
315
403
|
if [ -z "$NUMBER" ]; then
|
|
316
404
|
echo "Error: line number required."
|
|
317
|
-
echo "Usage: notedux
|
|
405
|
+
echo "Usage: notedux del <number>"
|
|
318
406
|
exit 1
|
|
319
407
|
fi
|
|
320
408
|
read -p "Delete line $NUMBER. Are you sure ? [y/N] " answer
|
|
@@ -335,8 +423,12 @@ delete_line() {
|
|
|
335
423
|
echo ""
|
|
336
424
|
LINK="https://notedux.com/n/$TOKEN"
|
|
337
425
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
338
|
-
echo
|
|
339
|
-
|
|
426
|
+
echo "$LINK" | copy_to_clipboard
|
|
427
|
+
if [ -n "$CLIPBOARD_CMD" ]; then
|
|
428
|
+
echo -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
|
|
429
|
+
else
|
|
430
|
+
echo -e "Link: \033[1;34m$LINK\033[0m"
|
|
431
|
+
fi
|
|
340
432
|
fi
|
|
341
433
|
;;
|
|
342
434
|
*)
|
|
@@ -351,6 +443,7 @@ delete_line() {
|
|
|
351
443
|
# MAIN
|
|
352
444
|
# -------------------------
|
|
353
445
|
|
|
446
|
+
check_compatibility
|
|
354
447
|
|
|
355
448
|
load_config
|
|
356
449
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "notedux",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"description": "Take notes from terminal",
|
|
5
5
|
"bin": {
|
|
6
6
|
"notedux": "notedux"
|
|
@@ -17,8 +17,5 @@
|
|
|
17
17
|
],
|
|
18
18
|
"author": "Dejan Sabados",
|
|
19
19
|
"license": "GPL-2.0-only",
|
|
20
|
-
"preferGlobal": true
|
|
21
|
-
"dependencies": {
|
|
22
|
-
"notedux": "^1.0.8"
|
|
23
|
-
}
|
|
20
|
+
"preferGlobal": true
|
|
24
21
|
}
|