Search
Search
Search
Search
Information
Information
Light
Dark
Open actions menu
Basic upload method
Bypass upload method
Tips!
If you encounter an error (by firewall) while uploading using both methods,
try changing extension of the file before uploading it and rename it right after.
This uploader supports multiple file upload.
Submit
~
usr
libexec
mc
extfs.d
File Content:
iso9660
#!/usr/bin/sh # Midnight Commander - ISO9660 VFS for MC # based on lslR by Tomas Novak <tnovak@ipex.cz> April 2000 # # Copyright (C) 2000, 2003 # The Free Software Foundation, Inc. # # Written by: # Michael Shigorin <mike@altlinux.org>, # Grigory Milev <week@altlinux.org>, # Kachalov Anton <mouse@linux.ru.net>, 2003 # Victor Ananjevsky <ananasik@gmail.com>, 2013 # slava zanko <slavazanko@gmail.com>, 2013 # # This file is part of the Midnight Commander. # # The Midnight Commander is free software: you can redistribute it # and/or modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the License, # or (at your option) any later version. # # The Midnight Commander is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. #*** include section (source functions, for example) ******************* #*** file scope functions ********************************************** XORRISO=$(which xorriso 2>/dev/null) xorriso_list() { if test -z "$XORRISO"; then return 1 fi local dir attr ln usr gr sz dt1 dt2 dt3 nm len name lsl r dir="${2:-/}" lsl=$( $XORRISO -abort_on FATAL -dev stdio:"$1" -cd "$dir" -lsl 2> /dev/null ) r=$? test $r -gt 0 && return $r echo "$lsl" | grep "^[-d]" | \ while read attr ln usr gr sz dt1 dt2 dt3 nm ; do len=$((${#nm} - 1)) name=$(printf -- "$nm" | cut -c2-$len) # remove quotes if test $(printf -- "$attr" | cut -c1-1) != "d"; then printf -- "%s %s %s %s %s %s %s %s %s/%s\n" "$attr" "$ln" "$usr" "$gr" "$sz" "$dt1" "$dt2" "$dt3" "$dir" "$name" else xorriso_list "$1" "$dir/$name" fi done } xorriso_copyout() { if test -z "$XORRISO"; then return 1 fi $XORRISO -dev stdio:"$1" -osirrox on -extract "$2" "$3" >/dev/null 2>&1 } xorriso_copyin() { if test -z "$XORRISO"; then return 1 fi $XORRISO -dev stdio:"$1" -cpr "$3" "$2" >/dev/null 2>&1 } xorriso_mkdir() { if test -z "$XORRISO"; then return 1 fi $XORRISO -dev stdio:"$1" -mkdir "$2" >/dev/null 2>&1 } xorriso_rmdir() { if test -z "$XORRISO"; then return 1 fi $XORRISO -dev stdio:"$1" -rmdir "$2" >/dev/null 2>&1 } xorriso_rm() { if test -z "$XORRISO"; then return 1 fi $XORRISO -dev stdio:"$1" -rm "$2" >/dev/null 2>&1 } # tested to comply with isoinfo 2.0's output test_iso () { which isoinfo 2>/dev/null || (echo "isoinfo not found" >&2; return 1) CHARSET=$(locale charmap 2>/dev/null) if test -z "$CHARSET"; then CHARSET=$(locale 2>/dev/null | grep LC_CTYPE | sed -n -e 's/.*\.\(.*\)"$/\1/p') fi if test -n "$CHARSET"; then CHARSET=$(echo "$CHARSET" | tr '[A-Z]' '[a-z]' | sed -e 's/^iso-/iso/') isoinfo -j $CHARSET -i /dev/null 2>&1 | grep "Iconv not yet supported\|Unknown charset" >/dev/null && CHARSET= fi if test -n "$CHARSET"; then JOLIET_OPT="-j $CHARSET -J" else JOLIET_OPT="-J" fi ISOINFO="isoinfo -R" ISOINFO_D_I="$(isoinfo -d -i "$1" 2>/dev/null)" echo "$ISOINFO_D_I" | grep "UCS level 1\|NO Joliet" > /dev/null || ISOINFO="$ISOINFO $JOLIET_OPT" if [ $(echo "$ISOINFO_D_I" | grep "Joliet with UCS level 3 found" | wc -l) = 1 \ -a $(echo "$ISOINFO_D_I" | grep "NO Rock Ridge" | wc -l) = 1 ] ; then SEMICOLON="YES" fi } mcisofs_list () { local lsl r # left as a reminder to implement compressed image support =) case "$1" in *.lz) MYCAT="lzip -dc";; *.lz4) MYCAT="lz4 -dc";; *.lzma) MYCAT="lzma -dc";; *.xz) MYCAT="xz -dc";; *.zst) MYCAT="zstd -dc";; *.bz2) MYCAT="bzip2 -dc";; *.gz) MYCAT="gzip -dc";; *.z) MYCAT="gzip -dc";; *.Z) MYCAT="gzip -dc";; *) MYCAT="cat";; esac lsl=$($ISOINFO -l -i "$1" 2>/dev/null) r=$? test $r -gt 0 && return $r echo "$lsl" | gawk -v SEMICOLON=$SEMICOLON ' BEGIN { dir=""; # Pattern to match 8 first fields. rx = "[^ ]+[ ]+"; rx = "^" rx rx rx rx rx rx rx rx; irx = "^\\[ *-?[0-9]* *[0-9]+\\] +"; } /^$/ { next } /^d---------/ { next } /^Directory listing of [^ ].*$/ { dir=substr($0, 23); next; } { $11 != "" } { name=$0 sub(rx, "", name) attr=substr($0, 1, length($0)-length(name)) # strip inodes and extra dir entries; fix perms sub(irx, "", name) sub("^---------- 0 0 0", "-r--r--r-- 1 root root", attr) sub(" $", "", name) # for Joliet UCS level 3 if (SEMICOLON == "YES") sub(";1$", "", name); ## sub(";[0-9]+$", "", name) ## would break copyout # skip . and .. if (name == ".") next; if (name == "..") next; printf "%s%s%s\n", attr, dir, name }' } mcisofs_copyout () { if [ "x$SEMICOLON" = "xYES" ]; then $ISOINFO -i "$1" -x "/$2;1" 2>/dev/null > "$3" else $ISOINFO -i "$1" -x "/$2" 2>/dev/null > "$3" fi } #*** main code ********************************************************* LC_ALL=C cmd="$1" shift case "$cmd" in list) xorriso_list "$@" || { test_iso "$@" || exit 1 mcisofs_list "$@" || exit 1 } exit 0 ;; rm) xorriso_rm "$@" || { exit 1 } exit 0 ;; rmdir) xorriso_rmdir "$@" || { exit 1 } exit 0 ;; mkdir) xorriso_mkdir "$@" || { exit 1 } exit 0 ;; copyin) xorriso_copyin "$@" || { exit 1 } exit 0 ;; copyout) xorriso_copyout "$@" || { test_iso "$@" || exit 1 mcisofs_copyout "$@" || exit 1 } exit 0 ;; esac exit 1
Edit
Download
Unzip
Chmod
Delete