Archive for the ‘Jigs’ Category

Ruby: Remove instances of a method

Here’s an “old school” style jig. I first attempted this in Haskell, but I needed Perl-compatible regular expressions (Posix can’t handle the negative lookahead needed for correctly identifying C-style comments), and installing the PCRE library for Haskell on Windows is painful, though I’ll get around to it one of these days.

 
require ‘find’
 
Find.find "Components\\CommComponents" do |p|
[...]

September 3, 2009 • Tags: , , • Posted in: Jigs • Comments Closed

Haskell: Filter C++ Classes

I’ve needed a jig to separate a C++ class’s declaration and implementation for quite some time. Compile with “ghc -O2 –make classfilt.hs” and invoke with “classfilt –impl” or “classfilt –decl”, piping in the class source with inline methods. It certainly doesn’t handle all the corners of the C++ language, but it does most of [...]

August 18, 2009 • Tags: , • Posted in: Jigs • Comments Closed

Erlang: Remove #include directives from all cpp files

I’m certain this can be done better and with fewer lines of code, but it’s my first Erlang jig.

August 3, 2009 • Tags: , • Posted in: Jigs • Comments Closed

Python: Generate Test Case Stubs For All Classes In A Module

I had a module full of classes. I wanted to generate a unittest.TestCase stub for every class, such as this:

# TODO: Finish this
class Test_className(unittest.TestCase):
def setUp(self):
pass

So, I wrote the following Python script:

if __name__=="__main__":
file = "c:/dev/sourceFile.py"
f [...]

July 9, 2009 • Tags: , , • Posted in: Jigs • One Comment

Scheme: Translate static data from C++ to XML

The C++ was extracted and munged with vim to make nice Scheme syntax elements before running this script.

(with-input-from-file "das.cpp"
(lambda ()
(do ((field-type (read) (read))
(field-length (read) (read))
(field-description (read) (read))
(bit-number (read) (read)))
((eof-object? field-type) #f)
[...]

June 23, 2009 • Tags: , , , • Posted in: Jigs • Comments Closed

Quick and Dirty Wordpress Backup Script (*NIX Shell)

Here’s a quick and dirty script to back up a wordpress blog.  In fact, it’s the backup script we use to back up Jigcode.  Of course, all of the hostnames, usernames and passwords have been removed.
This runs from a crontab which gets e-mailed to me, so I do an ‘ls’ at the end so I [...]

June 11, 2009 • Tags: , , , • Posted in: Jigs • Comments Closed

Scheme: Graph lines of code in Subversion

This checks out every tenth version from SVN and produces a data file which can easily be used as input to gnuplot. You can see the final graph.

(module foo
(main main))
 
(define *new-test-regexp* (pregexp "^[ \t][ \t]*void\\s+test[A-Za-z_0-9]*\\s*\\(\\s*\\)"))
 
(define (is-test-header? filename)
(cond
((not (string-ci=? "h" (suffix filename)))
#f)
[...]

June 11, 2009 • Tags: , , , , • Posted in: Jigs • One Comment

Scheme: Save preprocessor output for all compiled files

This is a wrapper for the MSVC compiler (cl.exe) to generate a .i file as well as a .obj. Compiled with Bigloo.

(module cl-wrap
(main main))
 
(define (quote-args args)
(let loop ((args args)
(result ""))
(if (null? args)
result
[...]

June 7, 2009 • Tags: , , , , • Posted in: Jigs • Comments Closed

Python: List files older than or newer than a specific date and time

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
28
29
30
31
32
import os, sys
from datetime import date, timedelta, datetime
from time import localtime
import re
 
files = os.listdir(’c:/windows/system32/’)
 
files = [ f for f in files if re.search(’.dll$’, f, re.I)]
 
files.sort()
 
d = datetime.now() – timedelta(days=30)
d = d.timetuple()
 
oldfiles = 0
newfiles = 0
for file in files:
filetimesecs = os.path.getmtime(’c:/windows/system32/’ + file)
filetime = localtime(filetimesecs)
 
#       print "*******************************"
#       print [...]

June 7, 2009 • Tags: , , , • Posted in: Jigs • Comments Closed