-static int force = 0, quiet = 0;
-
-static int write_entry(struct cache_entry *ce)
-{
- int fd;
- void *new;
- unsigned long size;
- long wrote;
- char type[20];
-
- new = read_sha1_file(ce->sha1, type, &size);
- if (!new || strcmp(type, "blob")) {
- fprintf(stderr, "checkout-cache: unable to read sha1 file of %s (%s)\n",
- ce->name, sha1_to_hex(ce->sha1));
- return -1;
- }
- fd = open(ce->name, O_WRONLY | O_CREAT | O_TRUNC, 0600);
- if (fd < 0) {
- fprintf(stderr, "checkout-cache: unable to create %s (%s)\n",
- ce->name, strerror(errno));
- free(new);
- return -1;
- }
- wrote = write(fd, new, size);
- close(fd);
- free(new);
- if (wrote == size)
- return 0;
- fprintf(stderr, "checkout-cache: unable to write %s\n", ce->name);
- return -1;
-}
-
-static int checkout_entry(struct cache_entry *ce)
-{
- if (!force) {
- struct stat st;
-
- if (!stat(ce->name, &st)) {
- unsigned changed = cache_match_stat(ce, &st);
- if (changed && !quiet)
- fprintf(stderr, "checkout-cache: %s already exists\n", ce->name);
- return 0;
- }
- }
- return write_entry(ce);
-}