История изменений
Исправление yax123, (текущая версия) :
Решил таки добить открытие squashfs через mc. И вот что получилось.
За основу взял следующее решение:
http://forum.puppyrus.org/index.php?topic=9032.0
правда пришлось его слегка подправить.
Итак:
1. в /usr/libexec/mc/extfs.d кладем файл squashfs следующего содержания
#! /bin/sh
UNSQUASH=/usr/bin/unsquashfs
mcsquashfs_list () {
$UNSQUASH -ll "$1" | awk '
{if (NR == 1) { next }}
{if (NR == 2) { next }}
/^$/ { next }
/^d/ { next }
{
sub("/", " ", $2)
date = substr($4, 6, 2) "-" substr($4, 9, 2) "-" substr($4, 1, 4) " " $5
sub("squashfs-root", "", $6)
name = $6
{if($7 != ""){name = name " " $7}}
{if($8 != ""){name = name " " $8}}
printf "%s 1 %s %s %s %s\n", $1, $2, $3, date, name
}'
}
mcsquashfs_copyout () {
TMP_DIR="/tmp/squashfs_temp"
[ ! -d $TMP_DIR ] && mkdir $TMP_DIR
$UNSQUASH -f -d $TMP_DIR $1 -e /$2 > /dev/null
mv $TMP_DIR/$2 $3
[ -d $TMP_DIR ] && rm -r $TMP_DIR
}
LC_ALL=C
cmd="$1"
shift
case "$cmd" in
list)
mcsquashfs_list "$@";
exit 0;;
copyout)
mcsquashfs_copyout "$@";
exit 0;;
esac
exit 1
2. в mc.ext добавить следующее:
#squashfs
regex/\.(sfs|tcz)$
Open=%cd %p/squashfs://
View=%view{ascii} unsquashfs -ll %f
Ну и понятно, что в ядре должна быть поддержка и unsquashfs должен быть установлен. Проверял на GNU Midnight Commander, версия 4.8.18
А я пошел все сжимать.
Исходная версия yax123, :
рабочее решение
Решил таки добить открытие squashfs через mc. И вот что получилось.
За основу взял следующее решение:
http://forum.puppyrus.org/index.php?topic=9032.0
правда пришлось его слегка подправить.
Итак:
1. в /usr/libexec/mc/extfs.d кладем файл squashfs следующего содержания
#! /bin/sh
UNSQUASH=/usr/bin/unsquashfs
mcsquashfs_list () {
$UNSQUASH -ll "$1" | awk '
{if (NR == 1) { next }}
{if (NR == 2) { next }}
/^$/ { next }
/^d/ { next }
{
sub("/", " ", $2)
date = substr($4, 6, 2) "-" substr($4, 9, 2) "-" substr($4, 1, 4) " " $5
sub("squashfs-root", "", $6)
name = $6
{if($7 != ""){name = name " " $7}}
{if($8 != ""){name = name " " $8}}
printf "%s 1 %s %s %s %s\n", $1, $2, $3, date, name
}'
}
mcsquashfs_copyout () {
TMP_DIR="/tmp/squashfs_temp"
[ ! -d $TMP_DIR ] && mkdir $TMP_DIR
$UNSQUASH -f -d $TMP_DIR $1 -e /$2 > /dev/null
mv $TMP_DIR/$2 $3
[ -d $TMP_DIR ] && rm -r $TMP_DIR
}
LC_ALL=C
cmd="$1"
shift
case "$cmd" in
list)
mcsquashfs_list "$@";
exit 0;;
copyout)
mcsquashfs_copyout "$@";
exit 0;;
esac
exit 1
2. в mc.ext добавить следующее:
#squashfs
regex/\.(sfs|tcz)$
Open=%cd %p/squashfs://
View=%view{ascii} unsquashfs -ll %f
Ну и понятно, что в ядре должна быть поддержка и unsquashfs должен быть установлен.
А я пошел все сжимать.