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|
[...]
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 [...]
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.
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 [...]
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)
[...]
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 [...]
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)
[...]
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
[...]
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 [...]

