summaryrefslogtreecommitdiff
path: root/sample/uumerge.rb
blob: 420a3924b67ea9cbdaa97a9286c690a7fff2bab7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/local/bin/ruby

while gets()
  if /^begin\s*(\d*)\s*(\S*)/
    $mode, $file = $1, $2
    $sawbegin+=1
    break
  end
end

fail "missing begin" unless $sawbegin;
OUT = open($file, "w") if $file != "";

while gets()
  if /^end/
    $sawend+=1
    break
  end
  sub(/[a-z]+$/, ""); # handle stupid trailing lowercase letters
  continue if /[a-z]/
  continue unless ((($_[0] - 32) & 077) + 2) / 3 == $_.length / 4
  OUT << $_.unpack("u");
end

fail "missing end" unless $sawend;
File.chmod $mode.oct, $file;
exit 0;