tangled
alpha
login
or
join now
zio.sh
/
atfile
37
fork
atom
๐ฆโ๐ฆ Store and retrieve files on the Atmosphere
37
fork
atom
overview
issues
3
pulls
pipelines
move toggle-desktop to own file
ducky.ws
5 months ago
e863dc7c
4691c023
1/1
build.yaml
success
6s
+51
-49
4 changed files
expand all
collapse all
unified
split
src
commands
old_cmds.sh
toggle-desktop.sh
token.sh
shared
invoke.sh
-46
src/commands/old_cmds.sh
···
416
416
fi
417
417
}
418
418
419
419
-
function atfile.invoke.toggle_desktop() {
420
420
-
unset desktop_dir
421
421
-
unset mime_dir
422
422
-
423
423
-
[[ $_os == "haiku" ]] && atfile.die "Not available on Haiku"
424
424
-
[[ $_os == "macos" ]] && atfile.die "Not available on macOS\nThink you could help? See: https://tangled.sh/@zio.sh/atfile/issues/9"
425
425
-
426
426
-
uid="$(id -u)"
427
427
-
if [[ $uid == 0 ]]; then
428
428
-
desktop_dir="/usr/local/share/applications"
429
429
-
mime_dir="/usr/local/share/mime"
430
430
-
else
431
431
-
desktop_dir="$HOME/.local/share/applications"
432
432
-
mime_dir="$HOME/.local/share/mime"
433
433
-
fi
434
434
-
435
435
-
desktop_path="$desktop_dir/atfile-handler.desktop"
436
436
-
mkdir -p "$desktop_dir"
437
437
-
mkdir -p "$mime_dir"
438
438
-
439
439
-
if [[ -f "$desktop_path" ]]; then
440
440
-
atfile.say "Removing '$desktop_path'..."
441
441
-
rm "$desktop_path"
442
442
-
else
443
443
-
atfile.say "Installing '$desktop_path'..."
444
444
-
445
445
-
echo "[Desktop Entry]
446
446
-
Name=ATFile (Handler)
447
447
-
Description=Handle atfile:/at: URIs with ATFile
448
448
-
Exec=$_prog_path handle %U
449
449
-
Terminal=false
450
450
-
Type=Application
451
451
-
MimeType=x-scheme-handler/at;x-scheme-handler/atfile;
452
452
-
NoDisplay=true" > "$desktop_path"
453
453
-
fi
454
454
-
455
455
-
if [ -x "$(command -v xdg-mime)" ] &&\
456
456
-
[ -x "$(command -v update-mime-database)" ]; then
457
457
-
atfile.say "Updating mime database..."
458
458
-
459
459
-
update-mime-database "$mime_dir"
460
460
-
xdg-mime default atfile-handler.desktop x-scheme-handler/at
461
461
-
xdg-mime default atfile-handler.desktop x-scheme-handler/atfile
462
462
-
fi
463
463
-
}
464
464
-
465
419
function atfile.invoke.upload() {
466
420
file="$1"
467
421
recipient="$2"
+48
src/commands/toggle-desktop.sh
···
1
1
+
#!/usr/bin/env bash
2
2
+
3
3
+
function atfile.toggle_desktop() {
4
4
+
unset desktop_dir
5
5
+
unset mime_dir
6
6
+
7
7
+
# shellcheck disable=SC2154
8
8
+
[[ $_os == "haiku" ]] && atfile.die "Not available on Haiku"
9
9
+
[[ $_os == "macos" ]] && atfile.die "Not available on macOS"
10
10
+
11
11
+
uid="$(id -u)"
12
12
+
if [[ $uid == 0 ]]; then
13
13
+
desktop_dir="/usr/local/share/applications"
14
14
+
mime_dir="/usr/local/share/mime"
15
15
+
else
16
16
+
desktop_dir="$HOME/.local/share/applications"
17
17
+
mime_dir="$HOME/.local/share/mime"
18
18
+
fi
19
19
+
20
20
+
desktop_path="$desktop_dir/atfile-handler.desktop"
21
21
+
mkdir -p "$desktop_dir"
22
22
+
mkdir -p "$mime_dir"
23
23
+
24
24
+
if [[ -f "$desktop_path" ]]; then
25
25
+
atfile.say "Removing '$desktop_path'..."
26
26
+
rm "$desktop_path"
27
27
+
else
28
28
+
atfile.say "Installing '$desktop_path'..."
29
29
+
30
30
+
echo "[Desktop Entry]
31
31
+
Name=ATFile (Handler)
32
32
+
Description=Handle atfile:/at: URIs with ATFile
33
33
+
Exec=$_prog_path handle %U
34
34
+
Terminal=false
35
35
+
Type=Application
36
36
+
MimeType=x-scheme-handler/at;x-scheme-handler/atfile;
37
37
+
NoDisplay=true" > "$desktop_path"
38
38
+
fi
39
39
+
40
40
+
if [ -x "$(command -v xdg-mime)" ] &&\
41
41
+
[ -x "$(command -v update-mime-database)" ]; then
42
42
+
atfile.say "Updating mime database..."
43
43
+
44
44
+
update-mime-database "$mime_dir"
45
45
+
xdg-mime default atfile-handler.desktop x-scheme-handler/at
46
46
+
xdg-mime default atfile-handler.desktop x-scheme-handler/atfile
47
47
+
fi
48
48
+
}
+1
-1
src/commands/token.sh
···
1
1
#!/usr/bin/env bash
2
2
3
3
-
function atfile.invoke.token() {
3
3
+
function atfile.token() {
4
4
atfile.xrpc.pds.jwt
5
5
}
+2
-2
src/shared/invoke.sh
···
139
139
atfile.stream "${args[0]}" "${args[1]}" "${args[2]}" "${args[3]}"
140
140
;;
141
141
"token")
142
142
-
atfile.invoke.token
142
142
+
atfile.token
143
143
;;
144
144
"toggle-mime")
145
145
-
atfile.invoke.toggle_desktop
145
145
+
atfile.toggle_desktop
146
146
;;
147
147
"upload")
148
148
atfile.util.check_prog_optional_metadata