Mercurial > ec-dotfiles
view bin/rar2zip @ 24:75c0cedc20ee
Merge
author | Edho Prima Arief <me@myconan.net> |
---|---|
date | Wed, 05 Jan 2011 16:23:12 +0700 |
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