chiark / gitweb /
knifeblock: wip, template reorg
[reprap-play.git] / knifeblock-knives-filter
1 #!/usr/bin/perl -w
2
3 use strict;
4 use POSIX;
5
6 our %want;
7
8 our @part_order = qw(h b);
9
10 my $want = shift @ARGV;
11 my ($wknife,$wparts) = $want =~ m/^(\d)([a-z]+)$/ or die;
12
13 sub want ($) {
14     my ($colournum) = @_;
15     my $knife = ($colournum-1) % 3;
16     return 0 unless $knife == $wknife;
17     my $part = $part_order[ floor(($colournum-1) / 3) ];
18     die "huh colour $colournum?" unless defined $part;
19     return 0 unless $part =~ m/[$wparts]/o;
20     return 1;
21 }
22
23 our $drop;
24 while (<>) {
25     if (m/^\S/) {
26         $drop = 
27             m/^2 5 / ||
28             (m/^(?:3 1|2 3) \d+ \d+ (\d+) / && !want($1));
29     }
30     next if $drop;
31
32     print or die $!;
33 }