| JSAN documentation | Contained in the JSAN distribution. |
JSAN -- JavaScript Archive Network (JSAN) Shell
Casey West <casey@geeknest.com>.
Adam Kennedy <adam@ali.as>, http://ali.as
Copyright (c) 2005 Casey West. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| JSAN documentation | Contained in the JSAN distribution. |
package JSAN; use JSAN::Shell; use Term::ReadLine; use Getopt::Long; our $PROMPT = 'jsan> '; our $VERSION = '0.07'; our %COMMAND; our $OPTIONS = { prefix => $ENV{JSAN_PREFIX} || $ENV{PREFIX}, mirror => $ENV{JSAN_MIRROR} || $ENV{MIRROR}, }; our @OPTIONS = ( q[prefix|p=s], q[mirror|m=s], ); $COMMAND{index} = sub { my ($shell, $opt) = @_; if ($opt =~ /create/ ) { print "Creating index... "; $shell->index_create; print "done.\n"; return; } $shell->index_get; }; $COMMAND{install} = sub { my ($shell, $opt) = @_; my ($library) = (split /\s/, $opt)[0]; $shell->install($library, $OPTIONS->{prefix}); }; sub run { my ($class) = @_; print $class->motd(); my $term = Term::ReadLine->new; while (defined(my $cmd_line = $term->readline($PROMPT))) { chomp($cmd_line); $cmd_line =~ s/^\s+//; $cmd_line =~ s/\s+$//; next unless $cmd_line; exit if grep { $cmd_line =~ /^\s*$_/ } qw[exit quit q logout]; eval { print "\n"; $class->execute($cmd_line); }; if ( $@ ) { warn "$@\n"; } else { $term->addhistory($cmd_line); } } } sub execute { my ($class, $cmd) = @_; my ($command, $options) = split /\s+/, $cmd, 2; $options ||= ''; die "Command $command not implemented" unless $COMMAND{$command}; $COMMAND{$command}->(JSAN::Shell->new(my_mirror => $OPTIONS->{mirror}), $options); } sub control { my ($class) = @_; GetOptions($OPTIONS, @OPTIONS); if ( @ARGV ) { $class->execute(join ' ', @ARGV); exit; } else { $class->run; exit; } } sub motd { <<__END__ Welcome to the JavaScript Archive Network (JSAN) Shell. The very first thing you probably want to do is setup your local index. Do do this, run the following command. jsan> index In order to install libraries you must configure a prefix. Use the --prefix command line option, or -p for short. Or, if you prefer, set your PREFIX environment variable. For example. jsan --prefix=/usr/local/js If you install all your libraries to a central location, you could just configure Apache (for example) to look for JavaScript in that one location: Alias /js/ "/usr/local/js/". Next. jsan> install Test.Simple That's it for tips. Welcome to JSAN! -- Casey West __END__ } 1; __END__