ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

TinyCoreLinuxコミュのtcz-pack.sh スクリプト

  • mixiチェック
  • このエントリーをはてなブックマークに追加
指定したディレクトリ内にある複数の .tcz を展開して、一つの .tcz にまとめる shスクリプトです。とりあえずバージョンです。修正はどんどんして、良いのはコメントに書いて下さい!
また、ご質問やご意見などもコメントに頂けたら嬉しいです。

必要App: squashfs-tools-4.0.tcz
=== tcz-pack.sh
#!/bin/sh

if [ $# != 1 -a $# != 2 ];then echo "`basename $0` <dir> [<.tcz>]";exit;fi

# root?
if [ `id -u` != 0 ];then sudo "$0" "$@";exit $?;fi

l=`find "$1" -name '*.tcz' -o -name '*.tczl'`
m=`find "$1" -name '*.tczm'`
if [ -z "$l" -a -z "$m" ];then "no tcz in $1";exit 1;fi
DIR_MNT=./mnt;DIR_BASE=./base
TMPFILE_INST=/tmp/tcz-inst
if [ ! -d "$DIR_MNT" ];then mkdir -p "$DIR_MNT"||exit;fi
if [ ! -d "$DIR_BASE" ];then mkdir -p "$DIR_BASE"||exit;fi
test -r /etc/init.d/tc-functions && source /etc/init.d/tc-functions
mkdir -p "$DIR_MNT/usr/local/tce.installed"
echo "#!/bin/sh">"$TMPFILE_INST"
#set -x
if [ $# == 2 ];then s="$2"
else s="${1%/}.tczl";test -n "$m"&&s="${s}m";fi
for z in `echo -e "$l\n$m"|sort`;do
echo "${BLUE}[merge]${NORMAL} $z"
mount -o loop "$z" "$DIR_MNT"||exit 1
cp -a "$DIR_MNT"/* "$DIR_BASE/" #||exit 1
umount "$DIR_MNT"
b="${z##*/}";b="${b%.*}";x="$DIR_BASE/usr/local/tce.installed/$b"
if [ -x "$x" ];then echo "#$b">>"$TMPFILE_INST";
cat $x>>"$TMPFILE_INST"; #sudo rm -f "$x"
elif [ "$b" != "${s%.*}" ];then
echo "touch /usr/local/tce.installed/$b">>"$TMPFILE_INST";fi
done
chmod +x "$TMPFILE_INST"
mv "$TMPFILE_INST" "$DIR_BASE/usr/local/tce.installed/${s%.*}"
rm -f "$s"
echo "${MAGENTA}[mksquashfs]${NORMAL} $s"
mksquashfs "$DIR_BASE/" "$s" -all-root -b 4096 #-noappend
rm -fr "$DIR_MNT" "$DIR_BASE"

コメント(1)

TC2.10 日本語リマスター版に入っている
scim や namoroka-ja の起動スクリプトには
最終行が改行のみになって無い行が含まれています。
そのため、上のスクリプトのままでは動きませんでした.。

応急処置として、cat $x>>"$TMPFILE_INST" の直後に
echo .>>"$TMPFILE_INST" と空行を出力することで
動くようにはできました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

TinyCoreLinux 更新情報

TinyCoreLinuxのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。