Alois Mahdal bf670e6a9f Added basic helper::dmup tests 11 years ago
bin Made the poor scriptie executable at last 11 years ago
cgi-bin Added rndfile.cgi 11 years ago
lib maintenance: Whitespace errors 11 years ago
t Added basic helper::dmup tests 11 years ago
.gitignore Ignore dumps 11 years ago
COPYING License first!!! 12 years ago
COPYING.LESSER License first!!! 12 years ago
README.md Added bd.pl 11 years ago
TODO.md Added idea for get_back client-server test 11 years ago

README.md

minions

My favorite tiny Perl scripts for development and testing.

bin - UNIX scripts

autotest.pl

Script to make it easier to start developing your new Perl module under pressure of unit tests written in Test::More and the likes.

Suggested use is to have it sit on the other monitor, run all .t files around and around and be annoying about the fact that they fail. Then the rule of thumb goes without saying: "no green, no commit".

bd.pl

Binary dump. Reads STDIN, 4 bytes at a time and displays it in similar way as hexdump(1) does with -C option (Canonical hex+ASCII display)

Example:

$ echo "Hello world" | ./bd.pl
00000000  01001000 01100101 01101100 01101100  |Hell|
00000004  01101111 00100000 01110111 01101111  |o wo|
00000008  01110010 01101100 01100100 00001010  |rld.|
$

mkexec.pl

Make executable script for you and heat up vim. Accepts filename as parameter.

  1. try to guess type from name (e.g. .pl -> perl)
  2. if filename does not exist, create it with shebang (based on which call)
  3. chmod it to 0755 (yeah, hardcoded 0755, no smartness here whatsoever)
  4. try to heat up vim or editor for you.

timestamp.pl

Script to measure how long does one second take. For those that know how long one second takes, it can serve as a snippet for Perl &stamp().

watchdump.pl

Trivial utility that prints a text file, clears the screen and pauses for 2s over and over.

Designed mainly for use with helper::dmup(); to enable you to see changes in your dumped data structure continuously, but obviously you can use it for any text file that will fit your screen.

For improved visual feedack, it will pre-pend the file contents with the file path and an "animation". Display of the header can be controlled by options, see --usage.

pl2yml.pl, yml2pl.pl

Simple scripts to read YAML/Perl data structure from a file and dump it in the other format to STDIN. Uses YAML::Tiny for YAML jobs.

cgi-bin - CGI scripts

hello_host.cgi

Prints overview of TCP connection details (IP addresses, ports, server user@host, time); 7 lines of plain text.

htlog.cgi

Collects GET requests with parameters msg, tag and i and logs them into single text file.

  • msg is actual message body. It can be used to contain parseable data like name=john;age=32;state=il
  • tag can be used to identify related messages like those from one test
  • use i if you tend to write tags like test01-012 .. test01-013 to store the iteration number, you'll be better off with this parameter as it won't break your ability to use tags

randomfile.pl

Send a 7-bit plain-text file via HTTP. One of these is sent:

  • random content of random length given by parameters min and max

  • EICAR test virus file

Chance to receive EICAR is given by parameter eicar (0-100).

lib - modules/libraries

helper.pm

Container module for some utility methods for Perl. Probably only dmup() is interesting—it bears a nice quick and dirty way for dumping Perl data.

htlogger.pm

API to make usage of htlog.cgi in Perl scripts even easier

use htlogr;

my $logger = htlogr::new('http://192.168.1.1/cgi-bin/htlog.cgi');

# we don't need tag nor iteration number, but it can be useful
my $tag = "synopsis_test";

$logger->log("Commencing synopsis test", $tag);

my $data = {
    foo => 1,
    bar => "Hello world"
};

foreach my $i (1..1000) {

    # log normal messages--with I!
    $logger->log("next 10 done!", $tag, $i) unless ($num % 100);

    # or a simple one-level data structures
    $logger->data(
        my_func_returning_hashref($data),
        $tag,
        $i
    );

}