summaryrefslogtreecommitdiff
path: root/hash-object.c
diff options
context:
space:
mode:
authorDaniel Barkalow <barkalow@iabervon.org>2005-12-10 22:25:24 (GMT)
committerJunio C Hamano <junkio@cox.net>2005-12-11 02:57:57 (GMT)
commit024510c8d947be6ae4765840e21a89d5a21271c4 (patch)
tree3a0912f20177e68e9e1e0e60b3aaea46ddc2fa32 /hash-object.c
parent10945e006a9567f4da1dac15cfdc1035752c5c5e (diff)
downloadgit-024510c8d947be6ae4765840e21a89d5a21271c4.zip
git-024510c8d947be6ae4765840e21a89d5a21271c4.tar.gz
git-024510c8d947be6ae4765840e21a89d5a21271c4.tar.bz2
Allow saving an object from a pipe
In order to support getting data into git with scripts, this adds a --stdin option to git-hash-object, which will make it read from stdin. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'hash-object.c')
-rw-r--r--hash-object.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/hash-object.c b/hash-object.c
index 6227936..6502b5b 100644
--- a/hash-object.c
+++ b/hash-object.c
@@ -21,8 +21,16 @@ static void hash_object(const char *path, const char *type, int write_object)
printf("%s\n", sha1_to_hex(sha1));
}
+static void hash_stdin(const char *type, int write_object)
+{
+ unsigned char sha1[20];
+ if (index_pipe(sha1, 0, type, write_object))
+ die("Unable to add stdin to database");
+ printf("%s\n", sha1_to_hex(sha1));
+}
+
static const char hash_object_usage[] =
-"git-hash-object [-t <type>] [-w] <file>...";
+"git-hash-object [-t <type>] [-w] [--stdin] <file>...";
int main(int argc, char **argv)
{
@@ -53,9 +61,12 @@ int main(int argc, char **argv)
}
else if (!strcmp(argv[i], "--help"))
usage(hash_object_usage);
+ else if (!strcmp(argv[i], "--stdin")) {
+ hash_stdin(type, write_object);
+ }
else
die(hash_object_usage);
- }
+ }
else {
const char *arg = argv[i];
if (0 <= prefix_length)