1#!/usr/bin/env bash
2
3function atfile.die() {
4 message="$1"
5
6 # shellcheck disable=SC2154
7 if [[ $_output_json != 1 ]]; then
8 atfile.say.die "$message"
9 else
10 echo -e "{ \"error\": \"$1\" }" | jq
11 fi
12
13 # shellcheck disable=SC2154
14 [[ $_is_sourced == 0 ]] && exit 255
15}
16
17function atfile.die.gui() {
18 cli_error="$1"
19 gui_error="$2"
20
21 [[ -z "$gui_error" ]] && gui_error="$cli_error"
22
23 if [ -x "$(command -v zenity)" ] && [[ $_is_sourced == 0 ]]; then
24 zenity --error --text "$gui_error"
25 fi
26
27 atfile.die "$cli_error"
28}
29
30function atfile.die.gui.xrpc_error() {
31 message="$1"
32 xrpc_error="$2"
33 message_cli="$message"
34
35 [[ "$xrpc_error" == "?" ]] && unset xrpc_error
36 [[ -n "$xrpc_error" ]] && message_cli="$message\nā³ $xrpc_error"
37
38 atfile.die.gui \
39 "$message_cli" \
40 "$message"
41}
42
43function atfile.die.xrpc_error() {
44 message="$1"
45 xrpc_error="$2"
46
47 [[ "$xrpc_error" == "?" ]] && unset xrpc_error
48 [[ -n "$xrpc_error" && "$xrpc_error" != "{}" ]] && message="$message\nā³ $xrpc_error"
49
50 atfile.die "$message"
51}
52
53function atfile.die.unknown_command() {
54 command="$1"
55 atfile.die "Unknown command '$command'"
56}