#!/bin/csh -f

##  ѡ桼ʳμ¹Ԥ
if ($HOME != "/root") then
	echo "ΥץȤϥѡ桼¹ԤǤޤ"
	exit
endif

## Υå
if ( $#argv < 1 ) then
		set PARM="-help"
else
		set PARM=$argv[1]
endif

switch ($PARM)

	## ѥåΥ󥹥ȡ륹ץ
	case -[iI]*:
		##  ѿ
		set TAR=`which tar`

		## Υե뤬뤫åθ塢󥹥ȡ¹Ԥ
		if ( -e /"$argv[2]") then
				echo "Ǥϡ$argv[2] Υ󥹥ȡ򳫻Ϥޤ"
				$TAR xvzf $argv[2] -C /
				rehash
				echo "󥹥ȡ̵λޤ"
		else
				echo "ե̾㤦褦Ǥ͡⤦٤ꤤޤ衪"
		endif
	breaksw


	## make installȥѥåκ򤹤륹ץ
	case -[mM]*:
		## åեγǧ
		set INST_LOCK=/tmp/inst.lock
		if ( -e $INST_LOCK ) then
			echo "åե뤬ޤ¾οͤ¹ԤƤʤС"$INST_LOCK"õƲ"
			exit
		endif

		##  ѿ
		set FIND=`which gfind`
		set COMM=`which comm`
		set SORT=`which sort`
		set UNAME=`which uname`
		set TR=`which tr`
		set RM=`which rm`
		set LN=`which ln`
		set CAT=`which cat`
		set MAKE=`which make`
		set TAR=`which tar`
		set GZIP=`which gzip`
		set EGREP=`which egrep`
		set INST_ORG=/tmp/inst.org
		set INST_NEW=/tmp/inst.new
		set INST_COMM=/tmp/inst.comm
		set KPKG=/var/log/kpkg
		set KPKG_CONF=`$CAT /usr/local/etc/kpkg.conf`
		set ADDSFX="`$UNAME -m`_`$UNAME -s``$UNAME -r|$TR -d "."`.tar"

		## äǷꤹѿ
		echo "---------------------------------------------------------------"
		echo "󥹥ȡ뤵ǽι⤤ǥ쥯ȥΥȥåפ"
		echo "ϤƲ¿ʬ/usrǤȻפޤ"
		echo ""
		echo -n "꥿󥭡ʤ/usrǹԤޤ"
		set INPUT=$<
		if ($INPUT == "") then
			set INST_DIR=/usr
		else
			set INST_DIR=$INPUT
		endif
		echo ""

		## äǷꤹѿ
		echo "---------------------------------------------------------------"
		echo "󥹥ȡ뤹륢ץꥱ̾ȥС̾ʷ"
		echo "ɽƲ(AfterStep1.4.5ʤas145ƤʴǤ)"
		echo -n ""
		set SOFT=$<
		set PLIST=$KPKG"/PLIST."$SOFT
		set PKG_NAME="/"$SOFT"_"$ADDSFX".gz"
		echo ""

		## Ƥμ¹Ԥξ¸ǥ쥯ȥ
		if (! -e $KPKG ) then
			mkdir $KPKG
		endif

		## 24ְκեκåեκ
		echo "---------------------------------------------------------------"
		echo "Ǥϡ24ְ˺줿¾ΥեĴ٤ޤ"
		echo "֤뤫ΤޤΤǰƲ ^_^"
		$FIND $INST_DIR -mtime -1 | $SORT > $INST_ORG
		$LN -s $INST_ORG $INST_LOCK
		echo ""

		## make installμ¹
		echo "Ԥ'$SOFT'Υ󥹥ȡ򳫻Ϥޤ"
		$MAKE install 
		echo ""

		## make installʳΥ󥹥ȡ򥵥ݡ
		echo "---------------------------------------------------------------"
		echo "make installʳüʥ󥹥ȡ륳ޥɤʤ"
		echo "ϤƲ( make install.man ʤ install.man )"
		echo ""
		echo -n "꥿󥭡ʤ鼡˹Ԥޤ"
		set INPUT=$<
		while($INPUT != "")
			make "$INPUT"
			echo ""
			echo "---------------------------------------------------------------"
			echo "make installʳüʥ󥹥ȡ륳ޥɤʤ"
			echo "ϤƲ( make install.man )"
			echo ""
			echo -n "꥿󥭡ʤ鼡˹Ԥޤ"
			set INPUT=$<
		end

		## 󥹥ȡ24ְκե
		echo ""
		echo "---------------------------------------------------------------"
		echo "󥹥ȡ뤵줿եŰפޤ"
		echo "ԤƤǤ衪(ä֤ޤ)"
		echo ""
		$FIND $INST_DIR -mtime -1 | $SORT > $INST_NEW
		$COMM -13 $INST_ORG $INST_NEW > $INST_COMM

		## ѥåͽΥեɽ
		echo "---------------------------------------------------------------"
		echo "󥹥ȡե"
		$CAT $INST_COMM

		## ѥåǥ쥯ȥorե
		echo ""
		echo "---------------------------------------------------------------"
		echo $KPKG_CONF"ʲΥǥ쥯ȥȥե"
		echo "ߥѥåˤϴޤʤˤʤäƤޤ"
		echo "ѹϥեѥǻꤷʣξ| Ƕڤä󵭤"
		echo ""
		echo "νͤѹС/usr/local/etc/kpkg.confԽ"
		echo ""
		echo -n "ڤΤޤޤǤ褤ۥ꥿ "
		set INPUT=$<
		if ($INPUT != "") then
			set KPKG_CONF=$INPUT
		endif

		## ǥ쥯ȥξե˹ʤ
		foreach i (`$CAT $INST_COMM`)
			if (-f $i) then
				if ($KPKG_CONF != "") then
					echo $i | $EGREP -v $KPKG_CONF >> $PLIST
				else
					echo $i >> $PLIST
				endif
			endif
		end

		## ѥå뤫ɤγǧȼ¹
		echo ""
		echo "---------------------------------------------------------------"
		echo "󥹥ȡեΥХååפȤƥѥå"
		echo "褦ȻפäƤޤ...פޤ͡"
		echo -n "פۥ꥿󡢡פʤN+꥿"
		set INPUT=$<
		if ($INPUT == "") then
			echo $PKG_NAME" Ȥ̾ǡ/(롼)¸ޤ"
			echo "ǤϡѥåȳϤޤ (_ _)"
			cd /
			foreach i (`$CAT $PLIST`)
				$TAR rvf $SOFT"_"$ADDSFX $i
			end
			$TAR rvf $SOFT"_"$ADDSFX $PLIST
			$GZIP -v $SOFT"_"$ADDSFX
			echo ""
		else
			echo "äץȤΤ˻ǰ (T_T)"
			set PKG_NAME="̤"
			echo ""
		endif

		## ¹Ƥ
		echo "---------------------------------------------------------------"
		echo "		 Kamiyama PacKaGe 󥹥ȡ"
		echo "---------------------------------------------------------------"
		echo "ץꥱ̾		"$SOFT
		echo "(󥤥󥹥ȡ뤹ˤϡ̾ɬפǤ)"
		echo ""
		echo "󥹥ȡե "$PLIST
		echo "(ΥեǴޤΤǡΤƤʤǤ͡)"
		echo ""
		echo "ѥåե		"$PKG_NAME
		echo `ls -l $PKG_NAME`
		echo "---------------------------------------------------------------"
		echo "ͤǤ ^_^ See ya"

		## ȥեκ
		$RM $INST_ORG
		$RM $INST_NEW
		$RM $INST_COMM
		$RM $INST_LOCK
	breaksw


	## 󥹥ȡ륢ץꥱΥץ
	case -[lL]*:
		clear   ## ̤ν

		## ѿ
		set LS=`which ls`
		set GREP=`which grep`
		set SED=`which sed`
		set AWK=`which gawk`
		set RM=`which rm`
		set KPKG_DIR=/var/log/kpkg
		set FILE_LIST=/tmp/kpkg.list
		set FILE_VAR=/tmp/kpkg.var
		set CAT=`which cat`
		set VV=0

		## ̤ɽ
		echo "---------------------------------------------------------------"
		echo "	 Kamiyama PacKaGe 󥹥ȡ륢ץꥱ"
		echo "---------------------------------------------------------------"
		echo ""
		echo "ɸPAGERǱޤΤǡפʤǤɡ"
		echo ""
		echo " ڼڡۥڡڡBڽλQ"
		echo " ڸ/+ե̾ΰ"
		echo ""
		echo -n "  ꥿󥭡³Ԥޤ"
		set INPUT=$<

		## եν
		if ( -e $FILE_LIST ) then
				$RM $FILE_LIST
		endif
		if ( -e $FILE_VAR) then
				$RM $FILE_VAR
		endif

		## ե̾饢ץꥱ̾
		foreach i (`$LS $KPKG_DIR`)
			echo $i | $GREP PLIST | $SED 's/PLIST\.//' >> $FILE_LIST
		end

		## ץꥱΥե̤׻
		echo -n "׻"
		foreach i (`$CAT $FILE_LIST`)
			echo -n .
			foreach x (`$CAT $KPKG_DIR"/PLIST."$i`)
				if ( -f $x ) then
				set V=`$LS -l $x | $AWK '{print $5}'`
				@ VV += $V
				endif
			end
			set INFO_DATE=`$LS -l $KPKG_DIR"/PLIST."$i | $AWK '{print $6,$7}'`
			echo "$i $INFO_DATE $VV" | $AWK '{printf "%-34s %5s %3s %12s\n",$1,$2,$3,$4}' >> $FILE_VAR
		set VV=0
		end

		## ǡPAGER˰Ϥեκ¹
		echo ""
		$CAT -n $FILE_VAR | $PAGER
		$RM $FILE_LIST
		$RM $FILE_VAR
	breaksw


	## 󥤥󥹥ȡΥץ
	case -[dD]*:
		clear ## ̤ν

		## ѿ
		set LS=`which ls`
		set GREP=`which grep`
		set SED=`which sed`
		set RM=`which rm`
		set CAT=`which cat`
		set KPKG_DIR=/var/log/kpkg
		set FILE_LIST=/tmp/kpkg.list

		## ̤ɽ
		echo "---------------------------------------------------------------"
		echo "			 Kamiyama PacKaGe 󥤥󥹥ȡ顼"
		echo "---------------------------------------------------------------"
		echo ""
		echo "󥤥󥹥ȡ뤹ե̾ǳǧͤϡ"
		echo "  b+꥿󥭡򲡤Ʋ"
		echo ""
		echo "  ե̾ʬäƤͤϥե̾+꥿󥭡"
		echo "  ϤƲ"
		echo ""
		echo -n "  "
		set INPUT=$< ## Ԥ

		## ʸȽifʸˤʬ
		if ($INPUT == "b") then
			$LS $KPKG_DIR | $GREP PLIST | $SED 's/PLIST\.//' > $FILE_LIST
			$CAT -n $FILE_LIST | $PAGER
			echo "---------------------------------------------------------------"
			echo "Ǥϡե̾ϤƲ"
			echo -n ""
			set UN_INST=$<
			$RM $FILE_LIST
		else
			set UN_INST=$INPUT
		endif
		
		## ºݤˤΥѥå뤫ȽǤθ塢¹
		if ( -e $KPKG_DIR"/PLIST."$UN_INST) then
			foreach i (`$CAT $KPKG_DIR"/PLIST."$UN_INST`)
				$RM -r $i
			end
			$RM $KPKG_DIR"/PLIST."$UN_INST
			echo ""
			echo "ƺޤ衪Ǥ⡢ɥåȥե"
			echo "եϼϤǤꤤޤ͡"
			echo ""
		else
			echo ""
			echo "̾ΥѥåϤޤ衪"
			echo "⤦١ǽ餫餪ꤤޤ"
			echo ""
		endif
		echo "ǤϤǤϡHappy Hacking! ^_^"
	breaksw


	## ץ󤬻ꤵʤäξɽ
	default:
		echo "---------------------------------------------------------------"
		echo "			 Kamiyama PacKaGe ե᡼"
		echo "---------------------------------------------------------------"
		echo ""
		echo "-m or -Mmake installȥѥåκ򤷤ޤ"
		echo ""
		echo "-d or -Dۥ󥹥ȡ뤵줿ѥåޤ"
		echo ""
		echo "-l or -Lۥ󥹥ȡ뤵Ƥѥåδñʾɽ"
		echo ""
		echo "-i or -Ikpkgǥѥå줿Τ򥤥󥹥ȡ뤷ޤ"
		echo "			ɬפȤޤ"
		echo "			) kpkg -i kpkg.tgz	ʴǤ"
		echo ""
	breaksw

endsw
