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.
Files changed (2) hide show
  1. package/notedux +138 -35
  2. 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.10
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 dell 3
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 -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
158
- echo "$LINK" | pbcopy
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 -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
194
- echo "$LINK" | pbcopy
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 -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
225
- echo "$LINK" | pbcopy
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 -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
256
- echo "$LINK" | pbcopy
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 -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
304
- echo "$LINK" | pbcopy
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 dell <number>"
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 -e "Link: \033[1;34m$LINK\033[0m (Copied to clipboard.)"
340
- echo "$LINK" | pbcopy
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.10",
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
  }