Compare commits

..

8 Commits

Author SHA1 Message Date
Dima Kogan
888583abe9 version bump 2016-11-25 14:45:47 -08:00
Dima Kogan
e17f110269 changelog bump 2016-11-25 14:45:35 -08:00
Dima Kogan
89a185f8a6 the sleep-forever delay at end is now > 1000 days 2016-11-25 14:42:49 -08:00
Dima Kogan
35ed74eaf1 'any' is from List::MoreUtils, not List::Util 2016-11-25 14:41:39 -08:00
Dima Kogan
07f574a929 added a new recipe 2016-11-25 14:39:22 -08:00
Dima Kogan
5dce1d8cda --style and --rangesize can now take a comma-separated list of IDs 2016-11-25 14:39:15 -08:00
Dima Kogan
048b0db65c Slightly better docs 2016-11-25 13:54:22 -08:00
Dima Kogan
b0877a8926 If the options couldn't be parsed I don't dump the whole manpage 2016-11-25 13:33:48 -08:00
14 changed files with 71 additions and 212 deletions

View File

@@ -1,3 +1,12 @@
feedgnuplot (1.40)
* If the options couldn't be parsed I don't dump the whole manpage
* --style and --rangesize can now take a comma-separated list of IDs
* 'any' is from List::MoreUtils, not List::Util
* the sleep-forever delay at end is now > 1000 days
-- Dima Kogan <dima@secretsauce.net> Fri, 25 Nov 2016 14:45:06 -0800
feedgnuplot (1.39) feedgnuplot (1.39)
* by default, histograms are plotted in expected ways * by default, histograms are plotted in expected ways

View File

@@ -64,6 +64,7 @@ WriteMakefile
PL_FILES => {}, PL_FILES => {},
EXE_FILES => [ 'bin/feedgnuplot' ], EXE_FILES => [ 'bin/feedgnuplot' ],
BUILD_REQUIRES => { 'String::ShellQuote' => 0, BUILD_REQUIRES => { 'String::ShellQuote' => 0,
'List::MoreUtils' => 0,
'IPC::Run' => 0}, 'IPC::Run' => 0},
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', }, dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
clean => { FILES => 'feedgnuplot-*' }, clean => { FILES => 'feedgnuplot-*' },

View File

@@ -8,13 +8,14 @@ use Getopt::Long;
use Time::HiRes qw( usleep gettimeofday tv_interval ); use Time::HiRes qw( usleep gettimeofday tv_interval );
use IO::Handle; use IO::Handle;
use IO::Select; use IO::Select;
use List::Util qw( first any ); use List::Util qw( first );
use List::MoreUtils 'any';
use Scalar::Util qw( looks_like_number ); use Scalar::Util qw( looks_like_number );
use Text::ParseWords; # for shellwords use Text::ParseWords; # for shellwords
use Pod::Usage; use Pod::Usage;
use Time::Piece; use Time::Piece;
my $VERSION = 1.39; my $VERSION = 1.40;
my %options; my %options;
interpretCommandline(); interpretCommandline();
@@ -108,9 +109,7 @@ sub interpretCommandline
'terminal=s', 'terminal=s',
'rangesize=s{2}', 'rangesizeall=i', 'extraValuesPerPoint=i', 'rangesize=s{2}', 'rangesizeall=i', 'extraValuesPerPoint=i',
'help', 'dump', 'exit', 'version', 'help', 'dump', 'exit', 'version',
'geometry=s') or pod2usage( -exitval => 1, 'geometry=s') or exit 1;
-verbose => 1, # synopsis and args
-output => \*STDERR );
# handle various cmdline-option errors # handle various cmdline-option errors
@@ -127,13 +126,6 @@ sub interpretCommandline
exit 0; exit 0;
} }
# expand options that are given as comma-separated lists
for my $listkey (qw(histogram y2))
{
@{$options{$listkey}} = map split('\s*,\s*', $_), @{$options{$listkey}}
if defined $options{$listkey};
}
# --style and --curvestyle are synonyms, as are --styleall and # --style and --curvestyle are synonyms, as are --styleall and
# --curvestyleall, so fill that in # --curvestyleall, so fill that in
if( $options{styleall} ) if( $options{styleall} )
@@ -157,6 +149,33 @@ sub interpretCommandline
delete $options{with}; delete $options{with};
} }
# expand options that are given as comma-separated lists
for my $listkey (qw(histogram y2))
{
@{$options{$listkey}} = map split('\s*,\s*', $_), @{$options{$listkey}}
if defined $options{$listkey};
}
for my $listkey (qw(curvestyle rangesize))
{
next unless defined $options{$listkey};
my @in = @{$options{$listkey}};
my $N = @in / 2;
my @out;
for my $i (0..$N-1)
{
my $key = $in[2*$i];
my $value = $in[2*$i + 1];
for my $key_new (split('\s*,\s*', $key))
{
push @out, $key_new, $value;
}
}
@{$options{$listkey}} = @out;
}
# If we're plotting histograms, then set the default histogram options for # If we're plotting histograms, then set the default histogram options for
# each histogram curve # each histogram curve
# #
@@ -786,7 +805,7 @@ sub mainThread
# we persist gnuplot, so we shouldn't need this sleep. However, once # we persist gnuplot, so we shouldn't need this sleep. However, once
# gnuplot exits, but the persistent window sticks around, you can no # gnuplot exits, but the persistent window sticks around, you can no
# longer interactively zoom the plot. So we still sleep # longer interactively zoom the plot. So we still sleep
sleep(100000) unless $options{dump} || $options{exit}; sleep(100000000) unless $options{dump} || $options{exit};
} }
sub pruneOldData sub pruneOldData
@@ -1279,7 +1298,9 @@ This command causes feedgnuplot to exit.
The script is able to produce hardcopy output with C<--hardcopy outputfile>. The The script is able to produce hardcopy output with C<--hardcopy outputfile>. The
output type can be inferred from the filename, if B<.ps>, B<.eps>, B<.pdf>, output type can be inferred from the filename, if B<.ps>, B<.eps>, B<.pdf>,
B<.svg> or B<.png> is requested. If any other file type is requested, B<.svg> or B<.png> is requested. If any other file type is requested,
C<--terminal> I<must> be passed in to tell gnuplot how to make the plot. C<--terminal> I<must> be passed in to tell gnuplot how to make the plot. If
C<--terminal> is passed in, then the C<--hardcopy> argument only provides the
output filename.
=head2 Self-plotting data files =head2 Self-plotting data files
@@ -1548,9 +1569,10 @@ report 0 or 1. 'cumulative' is the integral of the 'frequency' histogram.
C<--style curveID style> C<--style curveID style>
Additional styles per curve. With C<--dataid>, curveID is the ID. Otherwise, Additional styles per curve. With C<--dataid>, curveID is the ID. Otherwise,
it's the index of the curve, starting at 0. Use this option multiple times for it's the index of the curve, starting at 0. curveID can be a comma-separated
multiple curves. C<--styleall> does I<not> apply to curves that have a list of IDs to which the given style should apply. Use this option multiple
C<--style> times for multiple curves. C<--styleall> does I<not> apply to curves that have a
C<--style>.
=item =item
@@ -1653,16 +1675,17 @@ For 3D plots, set square aspect ratio for ONLY the x,y axes
C<--hardcopy xxx> C<--hardcopy xxx>
If not streaming, output to a file specified here. Format inferred from If not streaming, output to a file specified here. Format inferred from
filename, unless specified by C<--terminal> filename, unless specified by C<--terminal>. If C<--terminal> is given,
C<--hardcopy> sets I<only> the output filename.
=item =item
C<--terminal xxx> C<--terminal xxx>
String passed to 'set terminal'. No attempts are made to validate this. String passed to 'set terminal'. No attempts are made to validate this.
C<--hardcopy> sets this to some sensible defaults if --hardcopy is given .png, C<--hardcopy> sets this to some sensible defaults if C<--hardcopy> is set to a
.pdf, .ps, .eps or .svg. If any other file type is desired, use both filename ending in C<.png>, C<.pdf>, C<.ps>, C<.eps> or C<.svg>. If any other
C<--hardcopy> and C<--terminal> file type is desired, use both C<--hardcopy> and C<--terminal>
=item =item
@@ -1695,6 +1718,10 @@ C<--rangesize> is used to set how many values are needed to represent the range
of a point for a particular curve. This overrides any defaults that may exist of a point for a particular curve. This overrides any defaults that may exist
for this curve only. for this curve only.
With C<--dataid>, curveID is the ID. Otherwise, it's the index of the curve,
starting at 0. curveID can be a comma-separated list of IDs to which the given
rangesize should apply.
=item =item
C<--rangesizeall xxx> C<--rangesizeall xxx>
@@ -1856,6 +1883,19 @@ in a Thinkpad.
--binwidth 10 --binwidth 10
--ymin 0 --xlabel 'File size (MB)' --ylabel Frequency --ymin 0 --xlabel 'File size (MB)' --ylabel Frequency
=head2 Plotting points on top of an existing image
This can be done by using C<--equation> to pass arbitrary plot input to gnuplot:
$ < features_xy.data
feedgnuplot --points --domain
--equation '"image.png" binary filetype=png flipy with rgbimage'
Here an existing image is given to gnuplot verbatim, and data to plot on top of
it is interpreted by feedgnuplot as usual. C<flipy> is useful here because
usually the y axis points up, but when looking at images, this is usually
reversed: the origin is the top-left pixel.
=head1 ACKNOWLEDGEMENT =head1 ACKNOWLEDGEMENT
This program is originally based on the driveGnuPlots.pl script from This program is originally based on the driveGnuPlots.pl script from

113
debian/changelog vendored
View File

@@ -1,113 +0,0 @@
feedgnuplot (1.39-1) unstable; urgency=medium
* Upstream update:
- by default, histograms are plotted in expected ways
- No enhanced text mode in hardcopies, slightly larger font size
-- Dima Kogan <dkogan@debian.org> Sat, 15 Oct 2016 20:45:15 -0700
feedgnuplot (1.37-1) unstable; urgency=medium
* Upstream update: At the end of a streaming plot, include the last
chunk of data
-- Dima Kogan <dima@secretsauce.net> Fri, 01 Jan 2016 08:14:23 -0800
feedgnuplot (1.36-1) unstable; urgency=medium
* Upstream update: added --equation to plot symbolic equations
-- Dima Kogan <dima@secretsauce.net> Fri, 13 Nov 2015 11:14:30 -0800
feedgnuplot (1.35-1) unstable; urgency=medium
* Upstream update: fancier handling of termination conditions, no more
threading code
-- Dima Kogan <dima@secretsauce.net> Mon, 02 Nov 2015 13:55:32 -0800
feedgnuplot (1.34-2) unstable; urgency=medium
* Depends now works with the 'gnuplot5' packages
-- Dima Kogan <dima@secretsauce.net> Fri, 10 Oct 2014 14:05:17 -0700
feedgnuplot (1.34-1) unstable; urgency=medium
* Very minor upstream update
* gnuplot-nox can no satisfy the gnuplot dependency for feedgnuplot
-- Dima Kogan <dima@secretsauce.net> Wed, 06 Aug 2014 15:19:56 -0700
feedgnuplot (1.33-1) unstable; urgency=low
* Upstream update: fixed incorrect plotting of --timefmt --rangesize
plots
-- Dima Kogan <dima@secretsauce.net> Thu, 06 Feb 2014 23:19:02 -0800
feedgnuplot (1.32-1) unstable; urgency=low
* Added --rangesize and --rangesizeall. Different curves can now plot
different-size tuples
-- Dima Kogan <dima@secretsauce.net> Wed, 05 Feb 2014 14:00:44 -0800
feedgnuplot (1.30-1) unstable; urgency=low
* made the VCS links canonical
* added --set, --unset, --with, --style, --styleall
-- Dima Kogan <dima@secretsauce.net> Fri, 24 Jan 2014 15:50:03 -0800
feedgnuplot (1.28-1) unstable; urgency=low
* Upstream update:
- Removed example debianization
- Removed unreliable unit tests from automated testing (Closes: #731080)
* gnuplot dependency now favors graphical gnuplot packages
* Removed Anton Gladky from the Uploaders
-- Dima Kogan <dima@secretsauce.net> Wed, 04 Dec 2013 02:05:08 -0800
feedgnuplot (1.26-1) unstable; urgency=low
[ Dima Kogan ]
* Minor POD update
* Added test suite
* Added initial support for --timefmt. Currently time/date data is
supported only at the x-axis domain
* Added --exit option for force feedgnuplot to return even if gnuplot
may not yet be done rendering (patch by Eric Schulte)
* Reformatted the documentation
* y2-axis curves no longer have a thicker line by default
* --hardcopy now handles piped output (gnuplot 'set output |process'
syntax)
[ Anton Gladky ]
* Add libipc-run-perl to Build-Depends to execute tests
-- Dima Kogan <dima@secretsauce.net> Sun, 20 Oct 2013 01:19:51 -0700
feedgnuplot (1.24-2) unstable; urgency=low
* Now building the html documentation from the correct POD source
-- Dima Kogan <dima@secretsauce.net> Sun, 28 Apr 2013 17:42:52 -0700
feedgnuplot (1.24-1) unstable; urgency=low
* Fixed regression in --monotonic. This works again now
* moved POD back into the main source file. This fixes the broken usage
messages
* added --version
* fixed watchfile to work with newer github pages
* priority now optional
-- Dima Kogan <dima@secretsauce.net> Fri, 08 Feb 2013 02:01:32 -0800
feedgnuplot (1.23-2) unstable; urgency=low
* Initial Debian release (Closes: #686413)
-- Dima Kogan <dima@secretsauce.net> Tue, 30 Oct 2012 11:14:01 -0700

1
debian/compat vendored
View File

@@ -1 +0,0 @@
9

20
debian/control vendored
View File

@@ -1,20 +0,0 @@
Source: feedgnuplot
Section: science
Priority: optional
Build-Depends: debhelper (>= 9), libstring-shellquote-perl, perl, gawk, gnuplot, libipc-run-perl
Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Uploaders: Dima Kogan <dima@secretsauce.net>
Standards-Version: 3.9.4
Homepage: https://github.com/dkogan/feedgnuplot
Vcs-Git: git://anonscm.debian.org/debian-science/packages/feedgnuplot.git
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=debian-science/packages/feedgnuplot.git
Package: feedgnuplot
Architecture: all
Depends: ${misc:Depends}, ${perl:Depends},
gnuplot-qt | gnuplot-x11 | gnuplot-nox | gnuplot5-qt | gnuplot5-x11 | gnuplot5-nox | gnuplot
Description: Pipe-oriented frontend to Gnuplot
Flexible, command-line-oriented frontend to Gnuplot. Creates plots from data
coming in on STDIN or given in a filename passed on the commandline. Various
data representations are supported, as is hardcopy output and streaming display
of live data.

24
debian/copyright vendored
View File

@@ -1,24 +0,0 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Source: https://github.com/dkogan/feedgnuplot
Upstream-Contact: Dima Kogan, <dima@secretsauce.net>
Upstream-Name: feedgnuplot
Files: *
Copyright: 2011, Dima Kogan <dima@secretsauce.net>
License: Artistic or GPL-1+
License: Artistic
This program is free software; you can redistribute it and/or modify
it under the terms of the Artistic License, which comes with Perl.
.
On Debian GNU/Linux systems, the complete text of the Artistic License
can be found in `/usr/share/common-licenses/Artistic'.
License: GPL-1+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
.
On Debian GNU/Linux systems, the complete text of version 1 of the
General Public License can be found in `/usr/share/common-licenses/GPL-1'.

View File

@@ -1,9 +0,0 @@
Document: feedgnuplot
Title: Feedgnuplot Manual
Author: Dima Kogan
Abstract: Formatted manpage for feedgnuplot
Section: Science/Data Analysis
Format: HTML
Index: /usr/share/doc/feedgnuplot/feedgnuplot.html
Files: /usr/share/doc/feedgnuplot/feedgnuplot.html

View File

@@ -1 +0,0 @@
feedgnuplot.html

View File

@@ -1,2 +0,0 @@
completions/bash/feedgnuplot /etc/bash_completion.d/
completions/zsh/_feedgnuplot /usr/share/zsh/vendor-completions

4
debian/gbp.conf vendored
View File

@@ -1,4 +0,0 @@
[DEFAULT]
debian-branch = debian
upstream-tag = v%(version)s
pristine-tar = True

12
debian/rules vendored
View File

@@ -1,12 +0,0 @@
#!/usr/bin/make -f
%:
dh $@
override_dh_auto_build:
dh_auto_build
pod2html --title=feedgnuplot bin/feedgnuplot > feedgnuplot.html
override_dh_auto_clean:
rm -rf feedgnuplot.html pod2htm*
dh_auto_clean

View File

@@ -1 +0,0 @@
3.0 (quilt)

4
debian/watch vendored
View File

@@ -1,4 +0,0 @@
version=3
opts=uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha|b|a)\d*)$/$1~$2/,dversionmangle=s/\+(debian|dfsg|ds|deb)\d*$// \
https://github.com/dkogan/feedgnuplot/tags .*/v?(\d.*)\.(?:tgz|tbz2|txz|tar\.(?:gz|bz2|xz))
# Bart Martens <bartm@debian.org> Sat, 22 Dec 2012 12:54:18 +0000