notedux 1.0.10 → 1.0.12
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 +138 -35
- package/package.json +2 -5
package/notedux
CHANGED
|
@@ -11,11 +11,107 @@
|
|
|
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
|
+
# Linux: proveri da li X11 radi
|
|
64
|
+
if [ -n "$DISPLAY" ] && [ "$DISPLAY" != ":0" ]; then
|
|
65
|
+
# X11 je aktivan
|
|
66
|
+
if command -v xclip &>/dev/null; then
|
|
67
|
+
CLIPBOARD_CMD="xclip -selection clipboard"
|
|
68
|
+
elif command -v xsel &>/dev/null; then
|
|
69
|
+
CLIPBOARD_CMD="xsel --clipboard --input"
|
|
70
|
+
elif command -v wl-copy &>/dev/null; then
|
|
71
|
+
CLIPBOARD_CMD="wl-copy"
|
|
72
|
+
fi
|
|
73
|
+
elif command -v wl-copy &>/dev/null && [ -n "$WAYLAND_DISPLAY" ]; then
|
|
74
|
+
# Wayland
|
|
75
|
+
CLIPBOARD_CMD="wl-copy"
|
|
76
|
+
fi
|
|
77
|
+
# Ako nema X11 ili Wayland, CLIPBOARD_CMD ostaje prazan
|
|
78
|
+
fi
|
|
79
|
+
|
|
80
|
+
# No clipboard tool found - warn once, don't block usage.
|
|
81
|
+
if [ -z "$CLIPBOARD_CMD" ]; then
|
|
82
|
+
CLIPBOARD_WARNED=1
|
|
83
|
+
if [ "$PLATFORM" = "mac" ]; then
|
|
84
|
+
echo "Warning: 'pbcopy' not found. Links will not be copied to clipboard."
|
|
85
|
+
else
|
|
86
|
+
if [ -z "$DISPLAY" ]; then
|
|
87
|
+
echo "Info: No X11 display detected. Clipboard disabled."
|
|
88
|
+
else
|
|
89
|
+
echo "Warning: no clipboard tool found (xclip, xsel, or wl-copy)."
|
|
90
|
+
echo "Links will not be copied to clipboard. Install one with, e.g.:"
|
|
91
|
+
echo " sudo apt install xclip (Debian/Ubuntu, X11)"
|
|
92
|
+
echo " sudo dnf install xclip (Fedora, X11)"
|
|
93
|
+
echo " sudo pacman -S xclip (Arch, X11)"
|
|
94
|
+
echo " sudo apt install wl-clipboard (Wayland)"
|
|
95
|
+
fi
|
|
96
|
+
fi
|
|
97
|
+
fi
|
|
98
|
+
}
|
|
99
|
+
# Copies stdin to the clipboard using whatever tool was detected.
|
|
100
|
+
# Silently does nothing if no clipboard tool is available.
|
|
101
|
+
copy_to_clipboard() {
|
|
102
|
+
if [ -n "$CLIPBOARD_CMD" ]; then
|
|
103
|
+
eval "$CLIPBOARD_CMD"
|
|
104
|
+
else
|
|
105
|
+
cat >/dev/null
|
|
106
|
+
fi
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
|
|
14
110
|
show_help() {
|
|
15
111
|
cat <<EOF
|
|
16
112
|
|
|
17
113
|
Notedux CLI - Command-line client for the Notedux service (notedux.com).
|
|
18
|
-
Version 1.0.
|
|
114
|
+
Version 1.0.12
|
|
19
115
|
Copyright (C) 2026 Dejan Sabados
|
|
20
116
|
Licensed under the GNU GPL v3 or later.
|
|
21
117
|
This program comes with ABSOLUTELY NO WARRANTY.
|
|
@@ -44,7 +140,7 @@ Examples:
|
|
|
44
140
|
notedux generate
|
|
45
141
|
notedux add "Do one thing and do it well."
|
|
46
142
|
notedux show
|
|
47
|
-
notedux
|
|
143
|
+
notedux del 3
|
|
48
144
|
|
|
49
145
|
EOF
|
|
50
146
|
}
|
|
@@ -149,13 +245,17 @@ show_note() {
|
|
|
149
245
|
echo ""
|
|
150
246
|
HTTP_CODE=$(echo "$RESPONSE" | tail -n1)
|
|
151
247
|
RESPONSE=$(echo "$RESPONSE" | sed '$d')
|
|
152
|
-
|
|
248
|
+
|
|
153
249
|
LINK=$(grep -i '^x-note-link:' "$HEADERS" | cut -d' ' -f2- | tr -d '\r')
|
|
154
250
|
if [ "$HTTP_CODE" == "200" ]; then
|
|
155
251
|
echo "$RESPONSE"| nl -ba
|
|
156
252
|
echo ""
|
|
157
|
-
echo
|
|
158
|
-
|
|
253
|
+
echo "$LINK" | copy_to_clipboard
|
|
254
|
+
if [ -n "$CLIPBOARD_CMD" ]; then
|
|
255
|
+
echo -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
|
|
256
|
+
else
|
|
257
|
+
echo -e "Link: \033[1;34m$LINK\033[0m"
|
|
258
|
+
fi
|
|
159
259
|
else
|
|
160
260
|
echo "$RESPONSE"
|
|
161
261
|
echo ""
|
|
@@ -190,8 +290,12 @@ add_note() {
|
|
|
190
290
|
echo ""
|
|
191
291
|
LINK="https://notedux.com/n/$TOKEN"
|
|
192
292
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
193
|
-
echo
|
|
194
|
-
|
|
293
|
+
echo "$LINK" | copy_to_clipboard
|
|
294
|
+
if [ -n "$CLIPBOARD_CMD" ]; then
|
|
295
|
+
echo -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
|
|
296
|
+
else
|
|
297
|
+
echo -e "Link: \033[1;34m$LINK\033[0m"
|
|
298
|
+
fi
|
|
195
299
|
fi
|
|
196
300
|
}
|
|
197
301
|
|
|
@@ -221,8 +325,12 @@ set_note() {
|
|
|
221
325
|
echo ""
|
|
222
326
|
LINK="https://notedux.com/n/$TOKEN"
|
|
223
327
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
224
|
-
echo
|
|
225
|
-
|
|
328
|
+
echo "$LINK" | copy_to_clipboard
|
|
329
|
+
if [ -n "$CLIPBOARD_CMD" ]; then
|
|
330
|
+
echo -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
|
|
331
|
+
else
|
|
332
|
+
echo -e "Link: \033[1;34m$LINK\033[0m"
|
|
333
|
+
fi
|
|
226
334
|
fi
|
|
227
335
|
;;
|
|
228
336
|
*)
|
|
@@ -252,8 +360,12 @@ delete_all() {
|
|
|
252
360
|
echo ""
|
|
253
361
|
LINK="https://notedux.com/n/$TOKEN"
|
|
254
362
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
255
|
-
echo
|
|
256
|
-
|
|
363
|
+
echo "$LINK" | copy_to_clipboard
|
|
364
|
+
if [ -n "$CLIPBOARD_CMD" ]; then
|
|
365
|
+
echo -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
|
|
366
|
+
else
|
|
367
|
+
echo -e "Link: \033[1;34m$LINK\033[0m"
|
|
368
|
+
fi
|
|
257
369
|
fi
|
|
258
370
|
;;
|
|
259
371
|
*)
|
|
@@ -263,24 +375,6 @@ delete_all() {
|
|
|
263
375
|
}
|
|
264
376
|
|
|
265
377
|
|
|
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
378
|
delete_last() {
|
|
285
379
|
|
|
286
380
|
read -p "Delete last line. Are you sure ? [y/N] " answer
|
|
@@ -300,8 +394,12 @@ delete_last() {
|
|
|
300
394
|
echo ""
|
|
301
395
|
LINK="https://notedux.com/n/$TOKEN"
|
|
302
396
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
303
|
-
echo
|
|
304
|
-
|
|
397
|
+
echo "$LINK" | copy_to_clipboard
|
|
398
|
+
if [ -n "$CLIPBOARD_CMD" ]; then
|
|
399
|
+
echo -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
|
|
400
|
+
else
|
|
401
|
+
echo -e "Link: \033[1;34m$LINK\033[0m"
|
|
402
|
+
fi
|
|
305
403
|
fi
|
|
306
404
|
;;
|
|
307
405
|
*)
|
|
@@ -311,11 +409,11 @@ delete_last() {
|
|
|
311
409
|
}
|
|
312
410
|
|
|
313
411
|
delete_line() {
|
|
314
|
-
|
|
412
|
+
|
|
315
413
|
NUMBER="$1"
|
|
316
414
|
if [ -z "$NUMBER" ]; then
|
|
317
415
|
echo "Error: line number required."
|
|
318
|
-
echo "Usage: notedux
|
|
416
|
+
echo "Usage: notedux del <number>"
|
|
319
417
|
exit 1
|
|
320
418
|
fi
|
|
321
419
|
read -p "Delete line $NUMBER. Are you sure ? [y/N] " answer
|
|
@@ -336,8 +434,12 @@ delete_line() {
|
|
|
336
434
|
echo ""
|
|
337
435
|
LINK="https://notedux.com/n/$TOKEN"
|
|
338
436
|
if [ "$HTTP_CODE" = "200" ]; then
|
|
339
|
-
echo
|
|
340
|
-
|
|
437
|
+
echo "$LINK" | copy_to_clipboard
|
|
438
|
+
if [ -n "$CLIPBOARD_CMD" ]; then
|
|
439
|
+
echo -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
|
|
440
|
+
else
|
|
441
|
+
echo -e "Link: \033[1;34m$LINK\033[0m"
|
|
442
|
+
fi
|
|
341
443
|
fi
|
|
342
444
|
;;
|
|
343
445
|
*)
|
|
@@ -352,6 +454,7 @@ delete_line() {
|
|
|
352
454
|
# MAIN
|
|
353
455
|
# -------------------------
|
|
354
456
|
|
|
457
|
+
check_compatibility
|
|
355
458
|
|
|
356
459
|
load_config
|
|
357
460
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "notedux",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12",
|
|
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
|
}
|