#!/usr/bin/env perl use strict; use warnings; # PODNAME: reply # ABSTRACT: read, eval, print, loop, yay! use File::HomeDir; use File::Spec; use Getopt::Long; use Reply; =head1 SYNOPSIS reply =head1 DESCRIPTION This script runs the L shell. It looks for a configuration file in C<.replyrc> in your home directory, and will generate a basic configuration for you if that file does not exist. See the L documentation for more information about using and configuring this program. =cut my $cfgfile = '.replyrc'; GetOptions( 'cfg:s' => \$cfgfile, 'version' => sub { version() }, 'help' => sub { usage(0) }, ) or usage(1); my $cfg = File::Spec->catfile( (File::Spec->file_name_is_absolute($cfgfile) ? () : (File::HomeDir->my_home)), $cfgfile ); my %args = (config => $cfg); if (!-e $cfg) { print("$cfg not found. Generating a default...\n"); if (open my $fh, '>', $cfg) { my $contents = do { local $/; }; $contents =~ s/use 5.XXX/use $]/; print $fh $contents; close $fh; } else { warn "Couldn't write to $cfg"; %args = (); } } Reply->new(%args)->run; sub usage { print " reply [--version] [--help] [--cfg file]\n"; exit($_[0]); } sub version { print "Reply version $Reply::VERSION\n"; exit(0); } __DATA__ script_line1 = use strict script_line2 = use warnings script_line3 = use 5.XXX [Interrupt] [FancyPrompt] [DataDumper] [Colors] [ReadLine] [Hints] [Packages] [LexicalPersistence] [ResultCache]