summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2018-06-25 22:56:13 +0200
committerDaniel Friesel <derf@finalrewind.org>2018-06-25 22:56:13 +0200
commit14cf2bfe6faa17e5486bac4f6c693e95a1c33e42 (patch)
treefdb9649db26b1ea644fb941bba2723fcedd692f0
parent93e3f31fdc00421bb2a639038464833ae6ba1366 (diff)
Add optional twilight definition (-t)
-rwxr-xr-xbin/is_nighttime14
1 files changed, 9 insertions, 5 deletions
diff --git a/bin/is_nighttime b/bin/is_nighttime
index 89e0762..93d5981 100755
--- a/bin/is_nighttime
+++ b/bin/is_nighttime
@@ -14,16 +14,18 @@ our $VERSION = '0.0';
sub show_usage {
my ($exit_status) = @_;
- say "Usage: $0 [-d <offset>] [-ov] <latitude> <longitude>";
+ say
+"Usage: $0 [-d <offset>] [-t <twilight altitude>] [-ov] <latitude> <longitude>";
exit( $exit_status // 0 );
}
sub get_rise_and_set {
- my ( $ts, $lon, $lat ) = @_;
+ my ( $ts, $lon, $lat, $alt ) = @_;
my ( $rise_str, $set_str )
= sunrise( $ts->year, $ts->month, $ts->day, $lon, $lat,
- $ts->offset / 3600, 0 );
+ $ts->offset / 3600,
+ 0, $alt );
my ( $rise_h, $rise_m ) = ( $rise_str =~ m{(..):(..)} );
my ( $set_h, $set_m ) = ( $set_str =~ m{(..):(..)} );
@@ -42,7 +44,7 @@ sub get_rise_and_set {
}
my %opts;
-getopts( 'd:hov', \%opts );
+getopts( 'd:hot:v', \%opts );
if ( $opts{h} ) {
show_usage(0);
@@ -61,8 +63,10 @@ if ( $opts{d} and not $opts{d} =~ m{ ^ -? [[:digit:]]+ $}x ) {
my $now = DateTime->now( time_zone => 'local' );
my $delta = DateTime::Duration->new( minutes => $opts{d} || 0 );
+my $altitude = $opts{t} // Astro::Sunrise::DEFAULT;
-my ( $sunrise, $sunset ) = get_rise_and_set( $now, $longitude, $latitude );
+my ( $sunrise, $sunset )
+ = get_rise_and_set( $now, $longitude, $latitude, $altitude );
$sunrise->add_duration($delta);
$sunset->subtract_duration($delta);