Compare commits

...

53 Commits

Author SHA1 Message Date
Dima Kogan
caea1285a9 minor version bump 2013-12-04 21:34:07 -08:00
Dima Kogan
64bce2a425 added CPAN meta-data to require IPC::Run at build time 2013-12-04 20:44:54 -08:00
Dima Kogan
adbc8393f5 fixed spelling error in POD 2013-12-04 02:34:01 -08:00
Dima Kogan
235de3d5d1 version bump 2013-12-04 02:01:19 -08:00
Dima Kogan
198122431f first example now shows an ASCII plot 2013-12-04 00:11:43 -08:00
Dima Kogan
dd8bc8995d version bump 2013-12-03 23:38:18 -08:00
Dima Kogan
cc0b41e270 Some tests aren't 100% reliable, and are no longer included in automated testing
These are:

- Histogram and circle-plotting tests: these have inconsistent round-off
  behavior on different arches; specifically 32-bit and 64-bit x86. So both
  plots look fine, but not identical, thus the tests fail

- Streaming tests. These tests have a temporal component, so the loading of
  the host machine can cause a test failure. It's fine pretty much all the
  time on my not-too-new laptop, but this is bad for automated testing

The RUN_ALL_TESTS environment variable can be set to turn all ALL tests
2013-12-02 21:26:32 -08:00
Dima Kogan
1f757d1db1 reordered some unit tests 2013-12-02 21:16:00 -08:00
Dima Kogan
84a8daa56a removed example debianization, since debian itself now has it 2013-11-30 01:59:38 -08:00
Dima Kogan
1dad122cb9 changelog bump 2013-10-20 01:18:32 -07:00
Dima Kogan
ee6b339978 minor POD updates 2013-10-20 01:17:00 -07:00
Dima Kogan
0270ec7679 updated reference plots to work specifically with gnuplot 4.6.4 2013-10-20 00:46:00 -07:00
Dima Kogan
46123fc308 main test script gives up if gnuplot isn't available 2013-10-20 00:23:03 -07:00
Dima Kogan
f342a42cf9 updated CPAN depenencies 2013-10-20 00:17:32 -07:00
Dima Kogan
d55e54c095 version bump 2013-10-20 00:14:22 -07:00
Dima Kogan
0ca3482607 all tests now produce a higher-resolution plot 2013-10-20 00:09:10 -07:00
Dima Kogan
48254eefa8 test harness prints out the actual command being executed 2013-10-19 23:56:12 -07:00
Dima Kogan
54862ec2fd added --timefmt tests 2013-10-19 23:55:47 -07:00
Dima Kogan
74e95d8e6f If using --timefmt then --xlen MUST have an integer argument
I use strftime() and strptime() to deal with xlen in the timefmt case, and those
functions only work with integers
2013-10-19 23:37:17 -07:00
Dima Kogan
6f23f89c28 minor update to the timefmt doc 2013-10-19 22:52:55 -07:00
Dima Kogan
0f4fc69835 removed load test, since the functional tests all supersede it
This allows me to drop the dependency on Test::Script::Run
2013-10-19 22:47:48 -07:00
Dima Kogan
f83d8db27a added streaming tests 2013-10-19 22:45:43 -07:00
Dima Kogan
59625675f7 test now uses IPC::Run directly instead of Test::Script::Run
This is required for the streaming tests I'm about to write. Test::Script::Run
doesn't know how to feed input from one process to another as the data comes in
2013-10-19 22:45:43 -07:00
Dima Kogan
0863998848 streaming data now has an 'exit' command 2013-10-19 22:45:43 -07:00
Dima Kogan
f2fa0bf14c added --hardcopy tests 2013-10-19 22:45:43 -07:00
Dima Kogan
ffd19b9b87 --hardcopy now handles piped output
If we tell gnuplot to plot to a file whose name starts with '|', gnuplot writes
to a a process, not to a file. This is now supported by feedgnuplot
2013-10-19 22:45:43 -07:00
Dima Kogan
669fb8dee6 '--stream --hardcopy' is now an error, not a warning 2013-10-19 22:45:43 -07:00
Dima Kogan
deaa85dbd3 expanded test suite 2013-10-19 22:45:43 -07:00
Dima Kogan
99369d1542 y2-axis curves no longer have a thicker line by default
This was causing an issue where gnuplot would complain if a points-only
--curvestyle was plotted on the y2 axis. This is because --linewidth makes no
sense for a points-only curve
2013-10-19 22:45:33 -07:00
Dima Kogan
f4976bd0f7 --circles explicitly not supported for 3d plots 2013-10-19 22:45:33 -07:00
Dima Kogan
acd6de507c fixed doc reformatting typo 2013-10-19 22:45:33 -07:00
Dima Kogan
faaeac7990 made POD less verbose 2013-10-19 22:45:33 -07:00
Dima Kogan
1acb30c3cd first (very early) cut at a functional testing script 2013-10-18 15:17:58 -07:00
Dima Kogan
1252315598 tweaked a recipe to use --timefmt 2013-10-18 13:38:52 -07:00
Dima Kogan
fad78b60b0 slightly improved --timefmt documentation 2013-09-20 23:13:55 -07:00
Dima Kogan
809442e2dc reformatted docs. no content changes 2013-09-20 22:55:04 -07:00
Dima Kogan
f022590344 added timefmt documentation 2013-09-20 22:45:53 -07:00
Dima Kogan
3c0743c192 Updated bash, zsh completions with new commands. zsh completion has better prompts 2013-09-20 22:31:15 -07:00
Dima Kogan
c615c8d65e reordered bash completion entries in alphabetical order. removed duplicate --zlabel 2013-09-20 22:10:38 -07:00
Dima Kogan
c169330fca timefmt plots now work with streaming and with --xlen 2013-09-20 22:06:18 -07:00
Dima Kogan
d76f163be4 even simpler data storage
The data for each curve is now stored as one big string that has ALL the data;
this string is easily sent to gnuplot at once. There's also a bit of attached
meta-data to allow streaming --xlen culling to work
2013-09-20 19:32:44 -07:00
Dima Kogan
386c5f6d41 slightly simpler raw data parsing. Hopefully a bit quicker. 2013-09-20 03:46:41 -07:00
Dima Kogan
720c332dd9 Simplified data storage
I'm no longer storing the options as the first data point. That was silly, and
things are now clearer
2013-09-20 02:41:26 -07:00
Dima Kogan
4e823e7de5 I no longer grab the gnuplot version if I don't need it 2013-09-20 00:31:25 -07:00
Dima Kogan
3badf920b6 explicitly fail if we try --stream --xlen --xmin 2013-09-19 15:51:02 -07:00
Dima Kogan
756d934058 Simplified use of %options. I now use the global instead of passing it down 2013-09-19 15:42:29 -07:00
Dima Kogan
b43c9b985f added preliminary support for timefmt 2013-09-10 20:40:35 -07:00
Dima Kogan
2f5e9d95ca adusted help message for --exit 2013-08-12 17:22:22 -07:00
Eric Schulte
08d2f79fba added --exit option allowing feedgnuplot to return 2013-08-12 16:39:21 -06:00
Dima Kogan
ef2bff2af6 minor POD fixes, added some recipes 2013-06-27 13:15:49 -07:00
Dima Kogan
70b7c98124 better handling of non-timer-based replots
Previously I was ALWAYS replotting when triggered, ALWAYS replotting on a timer
and NEVER replotting on domain rollover with --monotonic.

I now have logic to do the right thing in all these cases. I now replot on
domain rollover, unless it's happening too quickly.
2013-06-15 01:33:00 -07:00
Dima Kogan
3146dbdfe7 cleared up --stream option logic
- minor refactoring
- --hardcopy and --stream together now generate a warning and turn off --stream
2013-06-15 01:33:00 -07:00
Dima Kogan
707196580a I now always 'exit -1' on error 2013-06-15 01:33:00 -07:00
17 changed files with 3149 additions and 581 deletions

42
Changes
View File

@@ -1,4 +1,44 @@
feedgnuplot (1.24) unstable; urgency=low
feedgnuplot (1.29) unstable; urgency=low
* added CPAN meta-data to require IPC::Run at build time
-- Dima Kogan <dima@secretsauce.net> Wed, 04 Dec 2013 21:12:40 -0800
feedgnuplot (1.28)
* Minor POD update
-- Dima Kogan <dima@secretsauce.net> Wed, 04 Dec 2013 02:01:05 -0800
feedgnuplot (1.27)
* Disabled tests that can fail on some arches (can be re-enabled with
environment variable)
* Removed sample debianization; this program is now in Debian proper
-- Dima Kogan <dima@secretsauce.net> Tue, 03 Dec 2013 23:37:40 -0800
feedgnuplot (1.26)
* Minor POD fixes
-- Dima Kogan <dima@secretsauce.net> Sun, 20 Oct 2013 01:17:57 -0700
feedgnuplot (1.25)
* 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)
-- Dima Kogan <dima@secretsauce.net> Sun, 20 Oct 2013 00:09:36 -0700
feedgnuplot (1.24)
* Fixed regression in --monotonic. This works again now
* moved POD back into the main source file. This fixes the broken usage

12
INSTALL
View File

@@ -1,17 +1,9 @@
If running on a Debian-based OS (this includes Ubuntu), it is highly recommended
to install this program as a package. In debian/unstable feedgnuplot is in the
official repos, so all you need to do is
to install this program as a package. In Debian and Ubuntu, feedgnuplot is in
the official repos, so all you need to do is
sudo apt-get install feedgnuplot
Otherwise a package can be built with
ln -fs package_definitions/debian debian
dpkg-buildpackage -us -uc -b
sudo dpkg -i ../feedgnuplot*.deb
This builds a debian package and installs it.
Without a package, an installation can be done with
perl Makefile.PL prefix=/usr/local

View File

@@ -1,7 +1,7 @@
Makefile.PL
MANIFEST
bin/feedgnuplot
t/00-load.t
t/manifest.t
t/plots.t
Changes
LICENSE

View File

@@ -63,7 +63,8 @@ WriteMakefile
: ()),
PL_FILES => {},
EXE_FILES => [ 'bin/feedgnuplot' ],
PREREQ_PM => { 'Test::Script::Run' => 0},
BUILD_REQUIRES => { 'String::ShellQuote' => 0,
'IPC::Run' => 0},
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
clean => { FILES => 'feedgnuplot-*' },
);

File diff suppressed because it is too large Load Diff

View File

@@ -1,43 +1,46 @@
complete -W \
' \
--domain \
--dataid \
--3d \
--colormap \
--stream \
--lines \
--points \
--circles \
--xlabel \
--ylabel \
--y2label \
--zlabel \
--zlabel \
--title \
--autolegend \
--xlen \
--xmin \
--xmax \
--ymin \
--ymax \
--y2min \
--y2max \
--zmin \
--zmax \
--y2 \
--curvestyleall \
--extracmds \
--square \
--square_xy \
--hardcopy \
--maxcurves \
--monotonic \
--extraValuesPerPoint \
--dump \
--geometry \
--curvestyle \
--histogram \
--binwidth \
--histstyle \
--terminal \
--legend' feedgnuplot
complete -W \
' \
--3d \
--autolegend \
--binwidth \
--circles \
--colormap \
--curvestyle \
--curvestyleall \
--dataid \
--domain \
--dump \
--exit \
--extraValuesPerPoint \
--extracmds \
--geometry \
--hardcopy \
--help \
--histogram \
--histstyle \
--legend \
--lines \
--maxcurves \
--monotonic \
--points \
--square \
--square_xy \
--stream \
--terminal \
--timefmt \
--title \
--version \
--xlabel \
--xlen \
--xmax \
--xmin \
--y2 \
--y2label \
--y2max \
--y2min \
--ylabel \
--ymax \
--ymin \
--zlabel \
--zmax \
--zmin' feedgnuplot

View File

@@ -1,44 +1,48 @@
#compdef feedgnuplot
_arguments -S \
'()--domain[first element of each line is the domain variable]' \
'--dataid[each data point is preceded by the corresponding ID]' \
'(--monotonic --xlen --histogram)--3d' \
'--colormap[show a colormapped xy plot]' \
'--stream[Plot the data in realtime]::period in s:' \
'--lines' \
'--points' \
'--circles' \
'--xlabel:X-axis label:' \
'--ylabel:Y-axis label:' \
'--y2label:Y2-axis label:' \
'--zlabel:Z-axis label:' \
'--zlabel:Z-axis label:' \
'--title:Plot title:' \
'--autolegend[Label each plot with its data ID]' \
'(--3d)--xlen[the size of the x-window to plot]::window size:' \
'--xmin:min X:' \
'--xmax:max X:' \
'--ymin:min Y:' \
'--ymax:max Y:' \
'--y2min:min Y2:' \
'--y2max:max Y2:' \
'--zmin:min Z:' \
'--zmax:max Z:' \
'*--y2:plot to place on the Y2 axis:' \
'--curvestyleall[Additional styles for ALL curves]:' \
'*--extracmds[Additional gnuplot commands]:' \
'--square[Plot data with square aspect ratio]' \
'--square_xy[For 3D plots, set square aspect ratio for ONLY the x,y axes]' \
'--hardcopy[Plot to a file]:' \
'--maxcurves[The maximum allowed number of curves]:' \
'(--3d)--monotonic[Resets plot if an X in the past is seen]' \
'--extraValuesPerPoint[How many extra values are given for each data point]:' \
'--dump[Instead of printing to gnuplot, print to STDOUT]' \
'--geometry[The X11 geometry string]:geometry string:' \
'*--curvestyle[Additional styles for a curve]:curve id: :style:' \
'(--3d)*--histogram:plot to treat as a histogram:' \
'--binwidth:Histogram bin width:' \
'--histstyle:Style of histogram:(frequency unique cumulative cnormal)' \
'--terminal:Terminal options to set with "set terminal":' \
'*--legend[Legend for a curve]:curve id: :legend:'
_arguments -S \
'()--domain[first element of each line is the domain variable]' \
'--dataid[each data point is preceded by the corresponding ID]' \
'(--monotonic --xlen --histogram)--3d' \
'--colormap[show a colormapped xy plot]' \
'--stream[Plot the data in realtime]::period in s:' \
'--lines' \
'--points' \
'--circles' \
'--xlabel:X-axis label:' \
'--ylabel:Y-axis label:' \
'--y2label:Y2-axis label:' \
'--zlabel:Z-axis label:' \
'--zlabel:Z-axis label:' \
'--title:Plot title:' \
'--autolegend[Label each plot with its data ID]' \
'(--3d)--xlen[the size of the x-window to plot]::window size:' \
'(--xlen)--xmin:min X:' \
'(--xlen)--xmax:max X:' \
'--ymin:min Y:' \
'--ymax:max Y:' \
'--y2min:min Y2:' \
'--y2max:max Y2:' \
'--zmin:min Z:' \
'--zmax:max Z:' \
'*--y2:plot to place on the Y2 axis:' \
'--curvestyleall[Additional styles for ALL curves]:style' \
'*--extracmds[Additional gnuplot commands]:command' \
'--square[Plot data with square aspect ratio]' \
'--square_xy[For 3D plots, set square aspect ratio for ONLY the x,y axes]' \
'--hardcopy[Plot to a file]:filename' \
'--maxcurves[The maximum allowed number of curves]:number of curves' \
'(--3d)--monotonic[Resets plot if an X in the past is seen]' \
'--extraValuesPerPoint[How many extra values are given for each data point]:N'\
'--dump[Instead of printing to gnuplot, print to STDOUT]' \
'--geometry[The X11 geometry string]:geometry string:' \
'*--curvestyle[Additional styles for a curve]:curve id: :style:' \
'(--3d)*--histogram:plot to treat as a histogram:' \
'--binwidth:Histogram bin width:' \
'--histstyle:Style of histogram:(frequency unique cumulative cnormal)' \
'--terminal:Terminal options to set with "set terminal":' \
'*--legend[Legend for a curve]:curve id: :legend:' \
'--exit[Exit gnuplot after making the plot]' \
'--version' \
'--help' \
'--timefmt[Format for time/date data]:time format'

View File

@@ -1,111 +0,0 @@
feedgnuplot (1.22) unstable; urgency=low
* removed --size option
-- Dima Kogan <dima@secretsauce.net> Mon, 03 Sep 2012 08:33:26 -0700
feedgnuplot (1.21) unstable; urgency=low
* removed the POD from the script to its own file
* fixed regression to allow no given extracmds, histogram or y2
options
-- Dima Kogan <dima@secretsauce.net> Sun, 02 Sep 2012 23:52:21 -0700
feedgnuplot (1.20) unstable; urgency=low
* no longer hardcoding 'x11' as the default terminal
* added histogram support
* generic terminals can now be requested
* --extracmds, --histogram, --y2 can now take comma-separated lists
-- Dima Kogan <dima@secretsauce.net> Fri, 31 Aug 2012 01:35:50 -0700
feedgnuplot (1.19) unstable; urgency=low
* added --geometry option to specify plot dimensions
-- Dima Kogan <dima@secretsauce.net> Sat, 11 Feb 2012 21:04:42 -0800
feedgnuplot (1.18) unstable; urgency=low
* data-ids can now include characters such as -. Any non-whitespace
works
-- Dima Kogan <dima@secretsauce.net> Tue, 27 Dec 2011 16:47:36 -0800
feedgnuplot (1.17) unstable; urgency=low
[ Dima Kogan ]
* POD: removed -Winteractive, since this was apparently a mawk-ism
* added zsh and bash completions to the package
[ Hermann Schwarting ]
* add build dependency libtest-script-run-perl
-- Dima Kogan <dima@secretsauce.net> Sun, 20 Nov 2011 19:17:22 -0800
feedgnuplot (1.16) unstable; urgency=low
* deb version parser now works for any package name
* Some POD fixes
* now building a native package
-- Dima Kogan <dima@secretsauce.net> Fri, 11 Nov 2011 00:10:18 -0800
feedgnuplot (1.15-2) unstable; urgency=low
* added source format for the debianization
* added configuration to let git-buildpackage build this package
* standards bump to make lintian happier
-- Dima Kogan <dima@secretsauce.net> Sun, 23 Oct 2011 13:38:15 -0700
feedgnuplot (1.15-1) unstable; urgency=low
* Renamed main script from feedGnuplot to feedgnuplot
* Slightly improved packaging, added instructions, etc
-- Dima Kogan <dima@secretsauce.net> Sun, 16 Oct 2011 11:58:15 -0700
feedgnuplot (1.14-1) unstable; urgency=low
* New upstream release (added 'clear' command, documented commands)
-- Dima Kogan <dima@secretsauce.net> Sun, 22 May 2011 15:25:28 -0700
feedgnuplot (1.13-1) unstable; urgency=low
* New upstream release (Better streaming plot control)
-- Dima Kogan <dima@secretsauce.net> Tue, 26 Apr 2011 14:24:09 -0700
feedgnuplot (1.12-1) unstable; urgency=low
* New upstream release
-- Dima Kogan <dima@secretsauce.net> Tue, 19 Apr 2011 11:02:23 -0700
feedgnuplot (1.11-1) unstable; urgency=low
* New upstream release
-- Dima Kogan <dima@secretsauce.net> Sat, 09 Apr 2011 14:10:21 -0700
feedgnuplot (1.10-1) unstable; urgency=low
* New upstream release
-- Dima Kogan <dima@secretsauce.net> Sat, 09 Apr 2011 14:08:06 -0700
feedgnuplot (1.09-1) unstable; urgency=low
* New upstream release
-- Dima Kogan <dima@secretsauce.net> Sun, 03 Apr 2011 17:23:38 -0700
feedgnuplot (1.08-1) unstable; urgency=low
* Initial debianized release.
-- Dima Kogan <dima@secretsauce.net> Sun, 6 Feb 2011 15:58:22 -0800

View File

@@ -1 +0,0 @@
7

View File

@@ -1,20 +0,0 @@
Source: feedgnuplot
Section: science
Priority: extra
Build-Depends: debhelper (>= 7), libtest-script-run-perl, perl
Maintainer: Dima Kogan <dima@secretsauce.net>
Uploaders: Dima Kogan <dima@secretsauce.net>
Standards-Version: 3.9.3
Homepage: https://github.com/dkogan/feedgnuplot
Vcs-Git: git://github.com/dkogan/feedgnuplot.git
Vcs-Browser: https://github.com/dkogan/feedgnuplot
DM-Upload-Allowed: yes
Package: feedgnuplot
Architecture: all
Depends: ${misc:Depends}, ${perl:Depends}, 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.

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,2 +0,0 @@
completions/bash/feedgnuplot /etc/bash_completion.d/
completions/zsh/_feedgnuplot /usr/share/zsh/vendor-completions

View File

@@ -1,5 +0,0 @@
[DEFAULT]
upstream-tree = branch
upstream-branch = master
debian-branch = master
debian-tag = debian-%(version)s

View File

@@ -1,4 +0,0 @@
#!/usr/bin/make -f
%:
dh $@

View File

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

View File

@@ -1,16 +0,0 @@
#!/usr/bin/perl
# require a threaded perl for my tests. This block lifted verbatim from the cpantesters wiki
BEGIN {
use Config;
if (! $Config{'useithreads'}) {
print("1..0 # Skip: Perl not compiled with 'useithreads'\n");
exit(0);
}
}
use Test::More tests => 1;
use Test::Script::Run;
run_ok( 'feedgnuplot', ['--help'], 'feedgnuplot can run');

2195
t/plots.t Normal file

File diff suppressed because it is too large Load Diff