📦➔🦋 Store and retrieve files on the Atmosphere
1#!/usr/bin/env bash
2
3function atfile.say() {
4 message="$1"
5 prefix="$2"
6 color_prefix="$3"
7 color_message="$4"
8 color_prefix_message="$5"
9 suffix="$6"
10
11 prefix_length=0
12
13 if [[ -n $_ci ]]; then
14 unset color_prefix
15 unset color_message
16 unset color_prefix_message
17 fi
18
19 # shellcheck disable=SC2154
20 if [[ $_os == "haiku" ]]; then
21 message="${message//↳/>}"
22 fi
23
24 [[ -z $color_prefix_message ]] && color_prefix_message=0
25 [[ -z $suffix ]] && suffix="\n"
26 [[ $suffix == "\\" ]] && suffix=""
27
28 if [[ -z $color_message ]]; then
29 color_message="\033[0m"
30 else
31 color_message="\033[${color_prefix_message};${color_message}m"
32 fi
33
34 if [[ -z $color_prefix ]]; then
35 color_prefix="\033[0m"
36 else
37 color_prefix="\033[1;${color_prefix}m"
38 fi
39
40 if [[ -n $prefix ]]; then
41 if [[ $prefix == *":"* ]]; then
42 prefix_length=${#prefix}
43 prefix="${color_prefix}${prefix}\033[0m"
44 else
45 prefix_length=$(( ${#prefix} + 2 ))
46 prefix="${color_prefix}${prefix}: \033[0m"
47 fi
48 fi
49
50 message="${message//\\n/\\n$(atfile.util.repeat_char " " "$prefix_length")}"
51 message="${prefix}${color_message}$message\033[0m${suffix}"
52
53 [[ -n "$_ci" ]] && message="${message//\\033[0m/}"
54
55 echo -n -e "$message"
56}
57
58function atfile.say.debug() {
59 message="$1"
60 prefix="$2"
61
62 [[ -z "$prefix" ]] && prefix="Debug"
63
64 # shellcheck disable=SC2154
65 if [[ $_debug == 1 ]]; then
66 atfile.say "$message" "$prefix" 35 >&2
67 fi
68}
69
70function atfile.say.die() {
71 message="$1"
72 atfile.say "$message" "Error" 31 31 1 >&2
73}
74
75function atfile.say.inline() {
76 message="$1"
77 color="$2"
78 atfile.say "$message" "" "" "$color" "" "\\"
79}