notedux 1.0.10 → 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 -35
- package/package.json +2 -5
package/notedux
CHANGED
|
@@ -11,11 +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).
|
|
18
|
-
Version 1.0.
|
|
103
|
+
Version 1.0.11
|
|
19
104
|
Copyright (C) 2026 Dejan Sabados
|
|
20
105
|
Licensed under the GNU GPL v3 or later.
|
|
21
106
|
This program comes with ABSOLUTELY NO WARRANTY.
|
|
@@ -44,7 +129,7 @@ Examples:
|
|
|
44
129
|
notedux generate
|
|
45
130
|
notedux add "Do one thing and do it well."
|
|
46
131
|
notedux show
|
|
47
|
-
notedux
|
|
132
|
+
notedux del 3
|
|
48
133
|
|
|
49
134
|
EOF
|
|
50
135
|
}
|
|
@@ -149,13 +234,17 @@ show_note() {
|
|
|
149
234
|
echo ""
|
|
150
235
|
HTTP_CODE=$(echo "$RESPONSE" | tail -n1)
|
|
151
236
|
RESPONSE=$(echo "$RESPONSE" | sed '$d')
|
|
152
|
-
|
|
237
|
+
|
|
153
238
|
LINK=$(grep -i '^x-note-link:' "$HEADERS" | cut -d' ' -f2- | tr -d '\r')
|
|
154
239
|
if [ "$HTTP_CODE" == "200" ]; then
|
|
155
240
|
echo "$RESPONSE"| nl -ba
|
|
156
241
|
echo ""
|
|
157
|
-
echo
|
|
158
|
-
|
|
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
|
|
159
248
|
else
|
|
160
249
|
echo "$RESPONSE"
|
|
161
250
|
echo ""
|
|
@@ -190,8 +279,12 @@ add_note() {
|
|
|
190
279
|
echo ""
|
|
191
280
|
LINK="https://notedux.com/n/$TOKEN"
|
|
192
281
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
193
|
-
echo
|
|
194
|
-
|
|
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
|
|
195
288
|
fi
|
|
196
289
|
}
|
|
197
290
|
|
|
@@ -221,8 +314,12 @@ set_note() {
|
|
|
221
314
|
echo ""
|
|
222
315
|
LINK="https://notedux.com/n/$TOKEN"
|
|
223
316
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
224
|
-
echo
|
|
225
|
-
|
|
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
|
|
226
323
|
fi
|
|
227
324
|
;;
|
|
228
325
|
*)
|
|
@@ -252,8 +349,12 @@ delete_all() {
|
|
|
252
349
|
echo ""
|
|
253
350
|
LINK="https://notedux.com/n/$TOKEN"
|
|
254
351
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
255
|
-
echo
|
|
256
|
-
|
|
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
|
|
257
358
|
fi
|
|
258
359
|
;;
|
|
259
360
|
*)
|
|
@@ -263,24 +364,6 @@ delete_all() {
|
|
|
263
364
|
}
|
|
264
365
|
|
|
265
366
|
|
|
266
|
-
delete_last() {
|
|
267
|
-
|
|
268
|
-
if ! confirm "Delete last line"; then
|
|
269
|
-
echo "Cancelled."
|
|
270
|
-
exit
|
|
271
|
-
fi
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
RESPONSE=$(curl -s -X POST "$API/dellast" \
|
|
275
|
-
--data-urlencode "token=$TOKEN")
|
|
276
|
-
|
|
277
|
-
echo "$RESPONSE"
|
|
278
|
-
# get and show the link to the note
|
|
279
|
-
LINK=$(echo "$RESPONSE" | grep -o '"link"[ ]*:[ ]*"[^"]*"' | sed 's/.*:\s*"//;s/"//')
|
|
280
|
-
echo "$LINK" | pbcopy
|
|
281
|
-
echo -e "\033[1;34m$LINK\033[0m"
|
|
282
|
-
echo "Copied to clipboard."
|
|
283
|
-
}
|
|
284
367
|
delete_last() {
|
|
285
368
|
|
|
286
369
|
read -p "Delete last line. Are you sure ? [y/N] " answer
|
|
@@ -300,8 +383,12 @@ delete_last() {
|
|
|
300
383
|
echo ""
|
|
301
384
|
LINK="https://notedux.com/n/$TOKEN"
|
|
302
385
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
303
|
-
echo
|
|
304
|
-
|
|
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
|
|
305
392
|
fi
|
|
306
393
|
;;
|
|
307
394
|
*)
|
|
@@ -311,11 +398,11 @@ delete_last() {
|
|
|
311
398
|
}
|
|
312
399
|
|
|
313
400
|
delete_line() {
|
|
314
|
-
|
|
401
|
+
|
|
315
402
|
NUMBER="$1"
|
|
316
403
|
if [ -z "$NUMBER" ]; then
|
|
317
404
|
echo "Error: line number required."
|
|
318
|
-
echo "Usage: notedux
|
|
405
|
+
echo "Usage: notedux del <number>"
|
|
319
406
|
exit 1
|
|
320
407
|
fi
|
|
321
408
|
read -p "Delete line $NUMBER. Are you sure ? [y/N] " answer
|
|
@@ -336,8 +423,12 @@ delete_line() {
|
|
|
336
423
|
echo ""
|
|
337
424
|
LINK="https://notedux.com/n/$TOKEN"
|
|
338
425
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
339
|
-
echo
|
|
340
|
-
|
|
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
|
|
341
432
|
fi
|
|
342
433
|
;;
|
|
343
434
|
*)
|
|
@@ -352,6 +443,7 @@ delete_line() {
|
|
|
352
443
|
# MAIN
|
|
353
444
|
# -------------------------
|
|
354
445
|
|
|
446
|
+
check_compatibility
|
|
355
447
|
|
|
356
448
|
load_config
|
|
357
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
|
}
|