SVN: toys/rsget.pl/RSGet: Line.pm Main.pm
sparky
sparky at pld-linux.org
Mon Nov 2 23:45:02 CET 2009
Author: sparky
Date: Mon Nov 2 23:45:01 2009
New Revision: 10930
Modified:
toys/rsget.pl/RSGet/Line.pm
toys/rsget.pl/RSGet/Main.pm
Log:
- added daemon option, not done correctly, but should work
Modified: toys/rsget.pl/RSGet/Line.pm
==============================================================================
--- toys/rsget.pl/RSGet/Line.pm (original)
+++ toys/rsget.pl/RSGet/Line.pm Mon Nov 2 23:45:01 2009
@@ -27,6 +27,7 @@
return $term_size_columns;
}
+my $nooutput = 0;
our %active;
my %dead;
our @dead;
@@ -135,6 +136,7 @@
sub update
{
+ return if $nooutput;
my $added = print_all_lines();
print "\033[J\033[" . $added . "A\r" if $added;
}
@@ -195,8 +197,16 @@
sub init
{
+ $nooutput = shift;
$| = 1;
+ $SIG{__WARN__} = sub {
+ new RSGet::Line( "WARNING: ", shift );
+ update();
+ };
+
+ return if $nooutput;
+
$SIG{INT} = sub {
print_all_lines();
print "\nTERMINATED\n";
@@ -212,11 +222,6 @@
update();
};
- $SIG{__WARN__} = sub {
- new RSGet::Line( "WARNING: ", shift );
- update();
- };
-
$SIG{__DIE__} = sub {
print_all_lines();
print "\n";
Modified: toys/rsget.pl/RSGet/Main.pm
==============================================================================
--- toys/rsget.pl/RSGet/Main.pm (original)
+++ toys/rsget.pl/RSGet/Main.pm Mon Nov 2 23:45:01 2009
@@ -43,6 +43,11 @@
desc => "User configuration file.",
allowed => qr/.+/,
},
+ daemon => {
+ desc => "Enter daemon mode. 1 - disable console output, 2 - also fork",
+ default => 0,
+ allowed => qr/[012]/,
+ },
);
our %usettings;
@@ -63,7 +68,8 @@
check_settings( \%main::settings );
read_userconfig();
- RSGet::Line::init();
+ my $daemon = setting( "daemon" );
+ RSGet::Line::init( $daemon );
print_settings() if verbose( 1 );
RSGet::FileList::set_file();
maybe_start_http();
@@ -78,6 +84,17 @@
new RSGet::Line();
RSGet::Line::update();
+ if ( $daemon == 2 ) {
+ my $pid = fork();
+ die "Cannot fork" unless defined $pid;
+ if ( $pid ) {
+ print "rsget.pl daemon started on pid: $pid\n";
+ exit 0;
+ }
+ } elsif ( $daemon ) {
+ print "rsget.pl daemon started successfully\n";
+ }
+
loop();
}
More information about the pld-cvs-commit
mailing list