From owner-ports-jp@jp.freebsd.org  Fri Oct  8 09:39:38 1999
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id JAA47582;
	Fri, 8 Oct 1999 09:39:38 +0900 (JST)
	(envelope-from owner-ports-jp@jp.FreeBSD.org)
Received: from diana.infonets.hiroshima-u.ac.jp (diana.infonets.hiroshima-u.ac.jp [133.41.33.53])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id JAA47577
	for <ports-jp@jp.freebsd.org>; Fri, 8 Oct 1999 09:39:38 +0900 (JST)
	(envelope-from taoka@infonets.hiroshima-u.ac.jp)
Received: from peg.infonets.hiroshima-u.ac.jp (peg.infonets.hiroshima-u.ac.jp [133.41.33.64])
	by diana.infonets.hiroshima-u.ac.jp (8.9.3/3.7W) with ESMTP id JAA03358
	for <ports-jp@jp.freebsd.org>; Fri, 8 Oct 1999 09:39:38 +0900 (JST)
Received: from localhost (localhost [127.0.0.1]) by peg.infonets.hiroshima-u.ac.jp (8.9.3/3.6W) with ESMTP
	id JAA30959 for <ports-jp@jp.freebsd.org>; Fri, 8 Oct 1999 09:39:37 +0900 (JST)
To: ports-jp@jp.freebsd.org
From: TAOKA Satoshi <taoka@infonets.hiroshima-u.ac.jp>
X-Mailer: Mew version 1.94 on XEmacs 21.1 (Big Bend)
X-Prom-Mew: Prom-Mew 1.93.4 (procmail reader for Mew)
X-URL: http://www.infonets.hiroshima-u.ac.jp/~taoka/
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id: <19991008093936N.taoka@infonets.hiroshima-u.ac.jp>
Date: Fri, 08 Oct 1999 09:39:36 +0900
X-Dispatcher: imput version 990905(IM130)
Lines: 154
Reply-To: ports-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+990727
X-Sequence: ports-jp 7799
Subject: [ports-jp 7799] pkg_divide
Errors-To: owner-ports-jp@jp.freebsd.org
Sender: owner-ports-jp@jp.freebsd.org
X-Originator: taoka@infonets.hiroshima-u.ac.jp


$B0JA0>R2p$7$?!"(Bpackage$B$r%5%$%:$G!J0MB84X78$b8+$J$,$i!KJ,3d$9$k%9%/%j%W%H(B
$B$r$b$&>/$7$^$7$K$7$^$7$?!J(B3.3R$B$r:n$k$N$K!";H$$$E$i$+$C$?$H$3$m$r=$@5!K!#(B


[$BA0Ds>r7o(B]

/hoge/INDEX $B"+(B $B%Q%C%1!<%8$KBP1~$7$?(BINDEX
/hoge/All/*.tgz $B"+%Q%C%1!<%8$rCV$/(B

$B$?$@$7!"(BINDEX$B$O>e$+$i=gHV$K=hM}$9$k$3$H$K$7$F$$$k$N$G!"0U?^E*$K!"(B
package$B$rJ,3d$7$?$$$J$iM=$a<jF0$GJT=8$7$^$9!#(B

[$B<B9T(B]

pkg_devide.pl size(KB) /hoge foo/dir
pkg_devide.pl size(KB) /hoge
pkg_devide.pl -o offset size(KB) /hoge

$B!V(B/hoge$B!W$,!"%3%T!<85$G!"!V(Bfoo/dir$B!W$,%3%T!<@h$G$9!#$3$l$r>JN,$9$k$H!"%+(B
$B%l%s%H%G%#%l%/%H%j$K$J$j$^$9!#$=$7$F!"$3$l$K$h$j!"(Bfoo/dir$B$KCV$1$k(Bsize
$B!J(Bdu -k$B$NCM!KJ,$@$1(B/hoge/All$BCf$N(Bpackage$B$r(Bfoo/dir$B$K%3%T!<$7$^$9!#$^$?!"?7(B
$B$7$$(BINDEX$B$b(BINDEX.new$B$H$7$F(Bfoo/dir$B$K:n$j$^$9!#(B

$B$?$H$($P!"(B

pkg_devide.pl 665600 /hoge foo/dir

$B$H$9$k$H!J(B650 x 1024 = 665600 $B$G$9!K!"(B/hoge/INDEX$B$N0lHV>e$+$i=hM}$7$F(B
650M$B$KC#$9$k$^$G!"(B/hoge/All$B$+$i(Bfoo/dir$B$K%3%T!<$7$^$9!#(B

pkg_devide.pl -o 1200 665600 /hoge foo/dir

$B$3$l$@$H!"(B/hoge/INDEX$B$N>e$+$i(B1200$B8D$rHt$P$7$F!"(B1201$B8DL\$N(Bpackage$B$+$i=hM}(B
$B$7$F$$$-$^$9!#$J$*!"(Boffset$B$N?tCM$O!"(Bpkg_devide.pl$B$N<B9T$G2?HVL\$r=hM}$7(B
$B$F$$$k$r=PNO$9$k$N$G!"$=$l$r;29M$K$9$l$PNI$$$G$7$g$&!#(B


[$BLdBjE@(B]

$B!~(B FreeBSD$B$N(Bpackage$B$G$O!V(Bpackages/japanese$B!W$K!V(Bpackages/All$B!W$N3:Ev%Q%C(B
$B%1!<%8$X$N(Bsymlink$B$,F~$j$^$9!#$G!"I,MW$J$b$N$@$1$K$9$k=hM}$O$7$^$;$s!#(B

[todo]

/hoge $B$K(Bsrc,info,packages$B$J$I%U%k%;%C%H$rF~$l!"$3$l$r<B9T$9$k$H!"(B650M$B$:(B
$B$D$NBg$-$5$KJ,3d$9$k:G6/%*%W%7%g%s$r2C$($k!#(B

$BDI?-!'(B3.3R$B$O!"(Bdistfiles$B0J30$G!"(B4$BKg$K$J$j$^$7$?!#:G8e$N(B1$BKg$O(B90M$B$G$7$?$,!#(B


#!/usr/bin/perl --
# -*-Perl-*-
# $Id: pkg_divide.pl,v 1.1 1999/10/04 01:31:53 taoka Exp $
'di';
'ig00';
# mk_cdrom.pl	-- Satoshi Taoka
#
# $Log: pkg_divide.pl,v $
# Revision 1.1  1999/10/04 01:31:53  taoka
# Imported pkg_divide
#
$RCSHEADER = '$Header: /home/taoka/lib/cvsroot/src/pkg_divide/pkg_divide.pl,v 1.1 1999/10/04 01:31:53 taoka Exp $';	#'
'$Revision: 1.1 $'  =~ /^\$\w+:\s+([.1234567890]+)\s+\$$/;	#'
$VERSION = $1;

require 'getopts.pl';
Getopts('ho:v');

die "Usage: $0 [-o 'offset'] [-v] size(KB) target-directory [dist-directory]
" if ($opt_h);

$size = $ARGV[0];
$dir = $ARGV[1];
$dist = $ARGV[2];
$dist = "." if $dist eq "";
$OINDEX = "$dist/INDEX.new";
$workdir = "$dist/.workdir";
opendir(DIR, $dir) || die "can't opendir $dir: $!";
closedir DIR;
open(IINDEX, "cat $dir/INDEX |") ||
  die "Not found INDEX in $dir $! \n";
@input = <IINDEX>;

$offset = 0;
$line_num = $opt_o;
$tail = `wc -l $dir/INDEX` - $opt_o;
system("mkdir -p $workdir");
foreach (@input){
  $offset++;
  next if $offset <= $opt_o;
  chop;
  $thisline = $_;
  ($package, $port, $prefix, $comment, $descr,
   $maintainer, $categories, $build_depends, $run_depends, $WWW) = split('\|');
  ($main_category) = split(' ',$categories);
  print "\nNow checking \'$main_category/$package.tgz\' ...\n" if defined($opt_v);
  print "	It depends on " . $run_depends, "\n" if defined($opt_v) && $run_depends ne "";
  $tarball = $dir . "/All/" . "$package" . ".tgz";
  @targets = split(/ /, $run_depends);
  push(@targets, $package);
  foreach $file (@targets){
    $lfile = $file . ".tgz";
    $tfile = $dir . "/All/" . $lfile;
    system "cp -p $tfile $workdir" unless -e $lfile;
  }
  $du = `du -sk $dist | cut -f 1`;
  chop $du;
  print "	Current size is $du KB " if defined($opt_v);
  if ($size > $du) {
    system "mv -f $workdir/* $dist/"  unless  `ls -l $workdir | wc -l` < 1;
    $line_num++;
    print "less than or equal to $size KB.\n" if defined($opt_v);
    print "	So current files are added into $dist/ .\n" if defined($opt_v);
    print "\(Line No. $line_num\) $main_category/$package.tgz is OK.\n";
  }
  else{
    print "more than $size KB.\n" if defined($opt_v);
    print "	So current files are thrown up.\n" if defined($opt_v);
    system "rm -rf $workdir";
    $success = $line_num - $opt_o;
    system "cat $dir/INDEX | tail -n $tail | head -n $success > $OINDEX" if $success > 1;
    die "\nOver space!!!\n";
  }
}
$success = $line_num - $opt_o;
system "cat $dir/INDEX | tail -n $tail | head -n $success > $OINDEX";
system "rmdir $workdir";

########################################################

	# These next few lines are legal in both Perl and Nroff.

.00;		# finish .ig
 
'di		\" finish diversion--previous line must be blank
.nr nl 0-1	\" fake up transition to first page again
.nr % 0		\" start at page 1
'; __END__	#### From here on it's a standard manual page ####
.TH MK_CDROM 1 "Wed May 19 1999" "Information Nets Lab.,Faculty of Engineering,Hiroshima Univ.,Japan."
.SH NAME
mk_cdrom \- 
.SH SYNOPSIS
.B mk_cdrom [options] [files]
.SH DESCRIPTION
.SH OPTIONS
.SH ENVIRONMENT
.SH EXAMPLES
.SH FILES
.SH AUTHOR
Satoshi Taoka <taoka@infonets.hiroshima-u.ac.jp>
.SH SEE ALSO
.SH DIAGNOSTICS
.SH BUGS
