namazu-ml(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: plan for Namazu v2.0



knok@xxxxxxxxxxxxx (NOKUBI Takatsugu) wrote:

>  個人的に、以下のようなものが欲しいと思っています。
>
>* XSベースの Namazu.pm
>
>  今のような、雛形HTMLファイルを修正してカスタマイズするというやり方は、
>お手軽で便利なのは確かなのですが、細部まで手が届かないなあ、と思うこと
>が稀にあります。

では、野首さんは committer になってその辺を作ってください。:)

CVS用のアカウント名とパスワードを私の方にメイルで送ってもら
えますか? 私の PGP公開鍵をメイルの末尾に添付しておきます。

あるいは crypt(3) が DES で実装されているライブラリをリンク
した Perl をお使いなら、このメイルの末尾に添付されているスク
リプトを使って $CVSROOT/CVSROOT/passwd 用のエントリを作成し
てそれを送ってもらえれば、その方が助かります。

使い方

  % perl cvsadduer
  cvs account: foobar   # アカウント名を入力
  password:             # パスワードを入力
  Re-enter password:    # もう一度
  real account (can be omitted): lookup  # ここは lookup 
  foobar:5/tS5Rk4UzvCM:lookup   # これが出力

p.s.  
開発の話をここでするのはちと気が引けるので
namazu-dev@xxxxxxxxxx を作ってもらおうと思います。

-- Satoru Takabayashi

Type Bits/KeyID    Date       User ID
pub  1024/AE73B98D 1998/11/21 Satoru Takabayashi <satoru@xxxxxxxxxxxxx>

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.3ia

mQCNAzZWFjgAAAEEAKZ6iztjHAhFBMuiXrYRSXMWLz0K2Qxx9WOiWg9PxbtRe+Nv
KUVfd2eDK1AVuJJGWnXV32XLdWhIHRFjJH7W9k64CC++LI320/2ZhG8QqHzJAhRm
/ADMX7pGFnj0drIaIby6AOE/l0KBY1zhEU744xnzH89QHK3MqAqg7UGuc7mNAAUR
tClTYXRvcnUgVGFrYWJheWFzaGkgPHNhdG9ydUBpc290ZXJuZXQub3JnPokAlQMF
EDZWFjgKoO1BrnO5jQEBBnUEAJfcOk/DziuVyr3dLQPtMSbhxFtF9pKIOnsq8Yon
BYDJBKxonqvEyMiVcDurILZn1nhjhQef/sQqy8pkqdy9Igb3MYvQo6UPmdJ5Elca
BIUdcjcp7taBRtx71Gxwfg8ld7pj2OOSfNyC46n2tnbJvFPVHyigG/HnEiszNmnd
frT4
=YSnG
-----END PGP PUBLIC KEY BLOCK-----

#!/usr/bin/perl -w
#
# usage: cvsadduser >> $CVSROOT/CVSROOT/passwd
#
use strict;

main();

sub main () {
    srand(time() ^ ($$ << 15));

    print STDERR "cvs account: ";
    my $cvs_account = <STDIN>;
    chomp $cvs_account;

    print STDERR "password: ";
    system "stty -echo";
    my $passwd = <STDIN>;
    system "stty echo";
    chomp $passwd;
    print STDERR "\n";

    print STDERR "Re-enter password: ";
    system "stty -echo";
    my $tmp_passwd = <STDIN>;
    system "stty echo";
    chomp $tmp_passwd;
    print STDERR "\n";

    unless ($passwd eq $tmp_passwd) {
	print STDERR "ERROR! They don't match.\n";
	exit 1;
    }

    print STDERR "real account (can be omitted): ";
    my $real_account = <STDIN>;
    chomp $real_account;

    my $salt = draw_salt();
    my $encoded_passwd = crypt($passwd, $salt);

    print "$cvs_account:$encoded_passwd";
    print ":$real_account" unless $real_account eq "";
    print "\n";
}

sub draw_salt () {
    my $salt_chars = 
	'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./';

    my $idx1 = int(rand() * length($salt_chars));
    my $idx2 = int(rand() * length($salt_chars));

    my $chr1 = substr($salt_chars, $idx1, 1);
    my $chr2 = substr($salt_chars, $idx2, 1);

    return ($chr1 . $chr2);
}