From bd81dc0b28032cb33e25be098fbb330dad954376 Mon Sep 17 00:00:00 2001 From: Connor Olding Date: Tue, 28 Sep 2021 13:41:55 -0700 Subject: [PATCH] reformat archive scripts to better fit in --- sh/archive | 118 ++++++++++++++++--------------- sh/lsarchive | 101 ++++++++++++++------------- sh/unarchive | 191 ++++++++++++++++++++++++++------------------------- 3 files changed, 215 insertions(+), 195 deletions(-) diff --git a/sh/archive b/sh/archive index b6f9523..9f56e7e 100755 --- a/sh/archive +++ b/sh/archive @@ -1,16 +1,21 @@ -# -# Creates archive file -# -# Authors: -# Matt Hamilton -# +#!/usr/bin/env zsh +# YES_ZSH +# NO_BASH +# NO_DASH +# NO_ASH -# function archive { +archive() { + # + # Creates archive file + # + # Authors: + # Matt Hamilton + # -local archive_name path_to_archive _gzip_bin _bzip2_bin _xz_bin _zstd_bin + local archive_name path_to_archive _gzip_bin _bzip2_bin _xz_bin _zstd_bin -if (( $# < 2 )); then - cat >&2 <&2 < -# +#!/usr/bin/env zsh +# YES_ZSH +# NO_BASH +# NO_DASH +# NO_ASH -# function lsarchive { +lsarchive() { + # + # Lists the contents of archives. + # + # Authors: + # Sorin Ionescu + # -local verbose + local verbose -if (( $# == 0 )); then - cat >&2 <&2 <. EOF -fi + return 1 + fi -if [[ "$1" == "-v" || "$1" == "--verbose" ]]; then - verbose=0 - shift -fi + if [[ "$1" == "-v" || "$1" == "--verbose" ]]; then + verbose=0 + shift + fi -while (( $# > 0 )); do - if [[ ! -s "$1" ]]; then - print "$0: file not valid: $1" >&2 - shift - continue - fi + while (( $# > 0 )); do + if [[ ! -s "$1" ]]; then + print "$0: file not valid: $1" >&2 + shift + continue + fi - case "$1:l" in - (*.tar.gz|*.tgz) tar t${verbose:+v}vzf "$1" ;; - (*.tar.bz2|*.tbz|*.tbz2) tar t${verbose:+v}jf "$1" ;; - (*.tar.xz|*.txz) tar --xz --help &> /dev/null \ - && tar --xz -t${verbose:+v}f "$1" \ - || xzcat "$1" | tar t${verbose:+v}f - ;; - (*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \ - && tar --lzma -t${verbose:+v}f "$1" \ - || lzcat "$1" | tar x${verbose:+v}f - ;; - (*.tar.zst|*.tzst) tar -I zstd -t${verbose:+v}f "$1" ;; - (*.tar) tar t${verbose:+v}f "$1" ;; - (*.zip|*.jar) unzip -l${verbose:+v} "$1" ;; - (*.rar) ( (( $+commands[unrar] )) \ - && unrar ${${verbose:+v}:-l} "$1" ) \ - || ( (( $+commands[rar] )) \ - && rar ${${verbose:+v}:-l} "$1" ) \ - || lsar ${verbose:+-l} "$1" ;; - (*.7z) 7za l "$1" ;; - (*) - print "$0: cannot list: $1" >&2 - success=1 - ;; - esac + case "$1:l" in + (*.tar.gz|*.tgz) tar t${verbose:+v}vzf "$1" ;; + (*.tar.bz2|*.tbz|*.tbz2) tar t${verbose:+v}jf "$1" ;; + (*.tar.xz|*.txz) tar --xz --help &> /dev/null \ + && tar --xz -t${verbose:+v}f "$1" \ + || xzcat "$1" | tar t${verbose:+v}f - ;; + (*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \ + && tar --lzma -t${verbose:+v}f "$1" \ + || lzcat "$1" | tar x${verbose:+v}f - ;; + (*.tar.zst|*.tzst) tar -I zstd -t${verbose:+v}f "$1" ;; + (*.tar) tar t${verbose:+v}f "$1" ;; + (*.zip|*.jar) unzip -l${verbose:+v} "$1" ;; + (*.rar) ( (( $+commands[unrar] )) \ + && unrar ${${verbose:+v}:-l} "$1" ) \ + || ( (( $+commands[rar] )) \ + && rar ${${verbose:+v}:-l} "$1" ) \ + || lsar ${verbose:+-l} "$1" ;; + (*.7z) 7za l "$1" ;; + (*) + print "$0: cannot list: $1" >&2 + success=1 + ;; + esac - shift -done + shift + done +} -# } +[ -n "${preload+-}" ] || lsarchive "$@" diff --git a/sh/unarchive b/sh/unarchive index 66c7e35..4656712 100755 --- a/sh/unarchive +++ b/sh/unarchive @@ -1,21 +1,26 @@ -# -# Extracts the contents of archives. -# -# Authors: -# Sorin Ionescu -# +#!/usr/bin/env zsh +# YES_ZSH +# NO_BASH +# NO_DASH +# NO_ASH -# function unarchive { +unarchive() { + # + # Extracts the contents of archives. + # + # Authors: + # Sorin Ionescu + # -local remove_archive -local success -local file_name -local file_path -local extract_dir -local _gzip_bin _bzip2_bin _xz_bin _zstd_bin + local remove_archive + local success + local file_name + local file_path + local extract_dir + local _gzip_bin _bzip2_bin _xz_bin _zstd_bin -if (( $# == 0 )); then - cat >&2 <&2 <. EOF -fi + return 1 + fi -remove_archive=1 -if [[ "$1" == "-r" || "$1" == "--remove" ]]; then - remove_archive=0 - shift -fi + remove_archive=1 + if [[ "$1" == "-r" || "$1" == "--remove" ]]; then + remove_archive=0 + shift + fi -# here, we check for dropin/multi-threaded replacements -# this should eventually be moved to modules/archive/init.zsh -# as a global alias -if (( $+commands[pigz] )); then - _gzip_bin='pigz' -else - _gzip_bin='gzip' -fi + # here, we check for dropin/multi-threaded replacements + # this should eventually be moved to modules/archive/init.zsh + # as a global alias + if (( $+commands[pigz] )); then + _gzip_bin='pigz' + else + _gzip_bin='gzip' + fi -if (( $+commands[pixz] )); then - _xz_bin='pixz' -else - _xz_bin='xz' -fi + if (( $+commands[pixz] )); then + _xz_bin='pixz' + else + _xz_bin='xz' + fi -if (( $+commands[lbzip2] )); then - _bzip2_bin='lbzip2' -elif (( $+commands[pbzip2] )); then - _bzip2_bin='pbzip2' -else - _bzip2_bin='bzip2' -fi + if (( $+commands[lbzip2] )); then + _bzip2_bin='lbzip2' + elif (( $+commands[pbzip2] )); then + _bzip2_bin='pbzip2' + else + _bzip2_bin='bzip2' + fi -_zstd_bin='zstd' + _zstd_bin='zstd' -while (( $# > 0 )); do - if [[ ! -s "$1" ]]; then - print "$0: file not valid: $1" >&2 - shift - continue - fi + while (( $# > 0 )); do + if [[ ! -s "$1" ]]; then + print "$0: file not valid: $1" >&2 + shift + continue + fi - success=0 - file_name="${1:t}" - file_path="${1:A}" - extract_dir="${file_name:r}" - case "$1:l" in - (*.tar.gz|*.tgz) tar -xvf "$1" --use-compress-program="${_gzip_bin}" ;; - (*.tar.bz2|*.tbz|*.tbz2) tar -xvf "$1" --use-compress-program="${_bzip2_bin}" ;; - (*.tar.xz|*.txz) tar -xvf "$1" --use-compress-program="${_xz_bin}" ;; - (*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \ - && tar --lzma -xvf "$1" \ - || lzcat "$1" | tar -xvf - ;; - (*.tar.zst|*.tzst) tar -xvf "$1" --use-compress-program="${_zstd_bin}" ;; - (*.tar) tar -xvf "$1" ;; - (*.gz) gunzip "$1" ;; - (*.bz2) bunzip2 "$1" ;; - (*.xz) unxz "$1" ;; - (*.lzma) unlzma "$1" ;; - (*.Z) uncompress "$1" ;; - (*.zip|*.jar) unzip "$1" -d $extract_dir ;; - (*.rar) ( (( $+commands[unrar] )) \ - && unrar x -ad "$1" ) \ - || ( (( $+commands[rar] )) \ - && rar x -ad "$1" ) \ - || unar -d "$1" ;; - (*.7z) 7za x "$1" ;; - (*.deb) - mkdir -p "$extract_dir/control" - mkdir -p "$extract_dir/data" - cd "$extract_dir"; ar vx "${file_path}" > /dev/null - cd control; tar xvf ../control.tar.* - cd ../data; tar xvf ../data.tar.* - cd ..; rm control.tar.* data.tar.* debian-binary - cd .. - ;; - (*) - print "$0: cannot extract: $1" >&2 - success=1 - ;; - esac + success=0 + file_name="${1:t}" + file_path="${1:A}" + extract_dir="${file_name:r}" + case "$1:l" in + (*.tar.gz|*.tgz) tar -xvf "$1" --use-compress-program="${_gzip_bin}" ;; + (*.tar.bz2|*.tbz|*.tbz2) tar -xvf "$1" --use-compress-program="${_bzip2_bin}" ;; + (*.tar.xz|*.txz) tar -xvf "$1" --use-compress-program="${_xz_bin}" ;; + (*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \ + && tar --lzma -xvf "$1" \ + || lzcat "$1" | tar -xvf - ;; + (*.tar.zst|*.tzst) tar -xvf "$1" --use-compress-program="${_zstd_bin}" ;; + (*.tar) tar -xvf "$1" ;; + (*.gz) gunzip "$1" ;; + (*.bz2) bunzip2 "$1" ;; + (*.xz) unxz "$1" ;; + (*.lzma) unlzma "$1" ;; + (*.Z) uncompress "$1" ;; + (*.zip|*.jar) unzip "$1" -d $extract_dir ;; + (*.rar) ( (( $+commands[unrar] )) \ + && unrar x -ad "$1" ) \ + || ( (( $+commands[rar] )) \ + && rar x -ad "$1" ) \ + || unar -d "$1" ;; + (*.7z) 7za x "$1" ;; + (*.deb) + mkdir -p "$extract_dir/control" + mkdir -p "$extract_dir/data" + cd "$extract_dir"; ar vx "${file_path}" > /dev/null + cd control; tar xvf ../control.tar.* + cd ../data; tar xvf ../data.tar.* + cd ..; rm control.tar.* data.tar.* debian-binary + cd .. + ;; + (*) + print "$0: cannot extract: $1" >&2 + success=1 + ;; + esac - (( success = $success > 0 ? $success : $? )) - (( $success == 0 )) && (( $remove_archive == 0 )) && rm "$1" - shift -done + (( success = $success > 0 ? $success : $? )) + (( $success == 0 )) && (( $remove_archive == 0 )) && rm "$1" + shift + done +} -# } +[ -n "${preload+-}" ] || unarchive "$@"