rev-parse: better error message for ambiguous arguments
[git.git] / mktag.c
diff --git a/mktag.c b/mktag.c
index 585677e..2328878 100644 (file)
--- a/mktag.c
+++ b/mktag.c
@@ -1,4 +1,5 @@
 #include "cache.h"
+#include "tag.h"
 
 /*
  * A signature file has a very simple fixed format: three lines
@@ -111,17 +112,14 @@ int main(int argc, char **argv)
        if (argc != 1)
                usage("cat <signaturefile> | git-mktag");
 
+       setup_git_directory();
+
        // Read the signature
        size = 0;
        for (;;) {
-               int ret = read(0, buffer + size, MAXSIZE - size);
-               if (!ret)
-                       break;
-               if (ret < 0) {
-                       if (errno == EAGAIN)
-                               continue;
+               int ret = xread(0, buffer + size, MAXSIZE - size);
+               if (ret <= 0)
                        break;
-               }
                size += ret;
        }
 
@@ -129,7 +127,7 @@ int main(int argc, char **argv)
        if (verify_tag(buffer, size) < 0)
                die("invalid tag signature file");
 
-       if (write_sha1_file(buffer, size, "tag", result_sha1) < 0)
+       if (write_sha1_file(buffer, size, tag_type, result_sha1) < 0)
                die("unable to write tag file");
        printf("%s\n", sha1_to_hex(result_sha1));
        return 0;