FreeBSD初心者運用日記 このページをアンテナに追加

 | 

2011-04-26

[]htmlballスクリプト 00:07 htmlballスクリプト - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - htmlballスクリプト - FreeBSD初心者運用日記 htmlballスクリプト - FreeBSD初心者運用日記 のブックマークコメント

圧縮の方法

./htmlball.sh -c -t {ターゲットディレクトリ}

htmlファイルは圧縮できません

解凍の方法

まず、ブラウザでページを開き、ctrl+aで全文コピーして、新規ファイルにペーストする。

その後、以下のコマンド実行で解凍

./htmlball.sh -c -t {ターゲットファイル}


#!/bin/sh

#
# usage
#

usage() {
	echo >&2 "usage: ./htmlball.sh -[c|x] -t target_file"
	exit
}


#
# create_archive
#

create_archive() {
	echo "<html>"
	echo "<head>"
	echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=euc-jp\">"
	echo "</head>"
	echo "<body>"
	echo "<pre>"
	cd $target_file
	for file in `find . -type f`
	do
		echo [$file]
		cat $file | sed -e 's/</\&lt;/g' -e 's/>/\&gt;/g'
	done
	echo "</pre>"
	echo "</body>"
	echo "</html>"
}


#
# extract_archive
#

extract_archive() {
	num=`grep -c "^\[.*\]" $target_file`
	num=`expr $num - 2`
	csplit -s -f output_htmlball. $target_file '/^\[.*\]/' "{$num}"
	for split_file in `find . -type f -name output_htmlball\* -maxdepth 1`
	do
		file_path_name=`head -1 $split_file | sed -e 's/\[//' -e 's/\]//g'`
		dir_name=`dirname $file_path_name`
		mkdir -p $dir_name
		sed 1d $split_file > $file_path_name
	done
	rm output_htmlball.*
}


#
# get param
#

target_file=""
create_flg=0
extract_flg=0
while getopts cxt: option
do
	case $option in 
		"t")
			target_file=$OPTARG
			;;
		"c")
			create_flg=1
			;;
		"x")
			extract_flg=1
			;;
	esac
done

if [ "$target_file" = "" -o $create_flg -eq 0 -a $extract_flg -eq 0 ]; then
	usage
else
	if [ ! -e $target_file ]; then
		echo "$target_file is not exist."
		exit
	fi
fi


#
# main proc
#

if [ $create_flg -eq 1 ]; then
	create_archive
elif [ $extract_flg -eq 1 ]; then
	extract_archive
else
	echo "parameter is invalid."
fi

 |