csum-file: add "sha1fd()" to create a SHA1 csum file from an existing file descriptor

We'll use this soon to write pack-files to stdout.
diff --git a/csum-file.c b/csum-file.c
index 3ab65b7..c8c7369 100644
--- a/csum-file.c
+++ b/csum-file.c
@@ -96,6 +96,26 @@
 	return f;
 }
 
+struct sha1file *sha1fd(int fd, const char *name)
+{
+	struct sha1file *f;
+	unsigned len;
+
+	f = xmalloc(sizeof(*f));
+
+	len = strlen(name);
+	if (len >= PATH_MAX)
+		die("you wascally wabbit, you");
+	f->namelen = len;
+	memcpy(f->name, name, len+1);
+
+	f->fd = fd;
+	f->error = 0;
+	f->offset = 0;
+	SHA1_Init(&f->ctx);
+	return f;
+}
+
 int sha1write_compressed(struct sha1file *f, void *in, unsigned int size)
 {
 	z_stream stream;