📦➔🦋 Store and retrieve files on the ATmosphere

various

Changed files
+42 -6
.tangled
workflows
src
+2
.tangled/workflows/build.yaml
··· 28 28 ATFILE_DEVEL_ENABLE_PUBLISH: "0" 29 29 30 30 steps: 31 + - name: "Debug" 32 + command: "./atfile.sh something-broke" 31 33 - name: "Build" 32 34 command: "./atfile.sh build"
+2
README.md
··· 41 41 * [MediaInfo (`mediainfo`)](https://mediaarea.net/en/MediaInfo) _(optional: set `ATFILE_DISABLE_NI_MEDIAINFO=1` to ignore)_ 42 42 * `md5sum` _(optional: set `ATFILE_DISABLE_NI_MD5SUM=1` to ignore)_ 43 43 * Both GNU and BusyBox versions supported 44 + * `sed` 45 + * Only GNU version supported 44 46 * [`websocat`](https://github.com/vi/websocat) _(optional: needed for `stream`)_ 45 47 * **ATProto account** 46 48 * Limit the amount of files you upload, and avoid copyrighted files, if using a managed PDS<br /><em>(e.g. [Blacksky](https://pds.blacksky.app), [Bluesky](https://bsky.social), [Spark](https://pds.sprk.so), [Tangled](https://tngl.sh), or any other independent PDS you don't own)</eM>
+38 -6
src/commands/something_broke.sh
··· 19 19 function atfile.something_broke.print_prog_version() { 20 20 prog="$1" 21 21 version_arg="$2" 22 + head="1" 22 23 23 24 [[ -z "$version_arg" ]] && version_arg="--version" 24 25 25 26 if [ -x "$(command -v "$prog")" ]; then 26 - eval "$prog $version_arg 2>&1" 27 + version_output="$(eval "$prog $version_arg 2>&1")" 28 + echo -e "$version_output" | head -n $head | sed "s/$prog //g" 27 29 else 28 30 echo "$prog_not_installed_placeholder" 29 31 fi ··· 34 36 atfile.die "Command not available as JSON" 35 37 fi 36 38 39 + unset cut_version 37 40 unset md5sum_version 41 + unset sed_version 38 42 finger_record="$(atfile.util.get_finger_record 1)" 43 + git_version="$(atfile.something_broke.print_prog_version "git")" 44 + hostname_version="$(atfile.something_broke.print_prog_version "hostname")" 39 45 mediainfo_version="$(atfile.something_broke.print_prog_version "mediainfo")" 40 46 41 47 # shellcheck disable=SC2154 42 48 if [[ $_os == "linux-musl" ]]; then 43 49 md5sum_version="$(atfile.something_broke.print_prog_version "md5sum" "--help")" 50 + # TODO: cut, sed 44 51 else 52 + cut_version="$(atfile.something_broke.print_prog_version "cut")" 45 53 md5sum_version="$(atfile.something_broke.print_prog_version "md5sum")" 54 + sed_version="$(atfile.something_broke.print_prog_version "sed")" 55 + fi 56 + 57 + if [[ "$cut_version" != "$prog_not_installed_placeholder" ]]; then 58 + if [[ "$cut_version" == *GNU* ]]; then 59 + cut_version="$(echo "$cut_version" | cut -d " " -f 3) (GNU)" 60 + else 61 + cut_version="(Unsupported)" 62 + fi 63 + fi 64 + 65 + if [[ "$git_version" != "$prog_not_installed_placeholder" ]]; then 66 + git_version="$(echo "$git_version" | cut -d " " -f 2)" 46 67 fi 47 68 48 69 if [[ "$md5sum_version" != "$prog_not_installed_placeholder" ]]; then 49 - md5sum_version="$(echo "$md5sum_version" | head -n 1)" 50 70 if [[ "$md5sum_version" == *GNU* ]]; then 51 - md5sum_version="$(echo "$md5sum_version" | cut -d " " -f 4) (GNU)" 71 + md5sum_version="$(echo "$md5sum_version" | cut -d " " -f 3) (GNU)" 52 72 elif [[ "$md5sum_version" == *BusyBox* ]]; then 53 - md5sum_version="$(echo "$md5sum_version" | cut -d " " -f 2 | cut -d "v" -f 2) (BusyBox)" 73 + md5sum_version="$(echo "$md5sum_version" | cut -d " " -f 1 | cut -d "v" -f 2) (BusyBox)" 54 74 else 55 - md5sum_version="(?)" 75 + md5sum_version="(Unsupported)" 56 76 fi 57 77 fi 58 78 59 79 if [[ "$mediainfo_version" != "$prog_not_installed_placeholder" ]]; then 60 80 mediainfo_version="$(echo "$mediainfo_version" | grep "MediaInfoLib" | cut -d "v" -f 2)" 81 + fi 82 + 83 + if [[ "$sed_version" != "$prog_not_installed_placeholder" ]]; then 84 + if [[ "$sed_version" == *GNU* ]]; then 85 + sed_version="$(echo "$sed_version" | cut -d " " -f 3) (GNU)" 86 + else 87 + sed_version="(Unsupported)" 88 + fi 61 89 fi 62 90 63 91 debug_output="ATFile ··· 118 146 ↳ Path: $PATH 119 147 Deps 120 148 ↳ Bash: $BASH_VERSION 121 - ↳ curl: $(atfile.something_broke.print_prog_version "curl" "--version" | head -n 1 | cut -d " " -f 2) 149 + ↳ curl: $(atfile.something_broke.print_prog_version "curl" "--version" | cut -d " " -f 1) 150 + ↳ cut: $cut_version 122 151 ↳ ExifTool: $(atfile.something_broke.print_prog_version "exiftool" "-ver") 152 + ↳ Git: $git_version 153 + ↳ hostname: $hostname_version 123 154 ↳ jq: $(atfile.something_broke.print_prog_version "jq" | sed -e "s|jq-||g") 124 155 ↳ md5sum: $md5sum_version 125 156 ↳ MediaInfo: $mediainfo_version 157 + ↳ sed: $sed_version 126 158 Misc. 127 159 ↳ Checksum: $([[ "$md5sum_version" != "$prog_not_installed_placeholder" ]] && md5sum "$_prog_path" || echo "(?)") 128 160 ↳ Dimensions: $(atfile.util.get_term_cols) Cols / $(atfile.util.get_term_rows) Rows