Mercurial > ec-dotfiles
view bin/rar2zip @ 657:91d7c2e5936c
Remove need to manually switch directory with sud
author | nanaya <me@nanaya.pro> |
---|---|
date | Sun, 25 Jul 2021 21:36:52 +0900 |
parents | 94ee419ad047 |
children |
line wrap: on
line source
#!/bin/sh to_lower() { printf "%s" "$1" | tr '[:upper:]' '[:lower:]' } full_path() { # It all depends on the first character. start=${i%${i#?}} path= case "${start}" in /) path="${1}";; # / is absolute. No change. *) path="${2}/${1}";; # Anything else must be prefixed with $2 (hopefully $PWD) esac printf "%s" "${path}" # Return. } for i in "$@"; do src_ext="${i##*.}" src_path="$(full_path "${i}" "${PWD}")" if [ -f "${src_path}" ] && [ -r "${src_path}" ] && [ "${src_ext}" != "${i}" ] && [ "$(to_lower ${src_ext})" = "rar" ]; then tmpdir=".tmp.${i##*/}" if mkdir -p "${tmpdir}"; then if 7z x -o"${tmpdir}" -- "${src_path}"; then (cd "${tmpdir}" && 7z a -mx=1 -tzip "${src_path%.*}.zip" -- "*";) fi rm -r "${tmpdir}" fi else echo "Invalid input: ${i}" fi done