backup-sourceforge.py

Backs up all of my SourceForge projects into a dated directory. Backs up Subversion repositories, CVS repositories, project web space, and tracker data. To use this, you'll have to modify the username and the list of projects and project IDs within the script.

I run it within Cygwin, but it will probably work fine in Linux or MacOS X with little or no modification.

Prerequisites

  • a recent python
  • rsync
  • ssh

Download backup-sourceforge.py

partition.py

Partitions a set of files into fixed-size buckets, using one of five algorithms. This script comes in handy when you want to burn a large set of files to as few CDs as possible. With the --move= option, partition.py sets up directories that can be burned with the burn script below. The motivation behind partition.py.

Usage:
    partition.py [options] [paths]

Options:
    -h              Print this usage information
    -s <size>       Size of each bucket (in bytes) [670,000,000]
    -a <algorithm>  Partitioning algorithm [ordered]
       ordered        All files remain ordered
       dff            Decreasing Fit First (fast, near-optimal solution)
       huffman        Combine smallest buckets until done
       knapsack       Multiple Knapsack algorithm, pretty slow (but really good)
       slow           Optimal partitioning, unbearably slow
    --move=<name>   Move files into bucket directories <name>0, <name>1...

Download partition.py

burn

Wraps mkisofs and cdrecord to make burning CDs a breeze. Modify the script to specify your CD burner device ID and your burn speed.

Usages:
    burn <directory> <label>
    burn <file>

Download burn