diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2019-12-19 15:01:58 +0100 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2019-12-19 15:01:58 +0100 |
commit | be32da0ed0233c6a8813b89eeececf9af49ad243 (patch) | |
tree | 5b9a7ebd5324b352cb5834d828b55c75e22c986f | |
parent | ee235e764c6a2af1ff3ae24ce8ad9ae0e1928f39 (diff) |
tarfile.cc: Style fixes
-rw-r--r-- | src/libutil/tarfile.cc | 59 |
1 files changed, 35 insertions, 24 deletions
diff --git a/src/libutil/tarfile.cc b/src/libutil/tarfile.cc index 68e918891..c85a8b0cb 100644 --- a/src/libutil/tarfile.cc +++ b/src/libutil/tarfile.cc @@ -6,66 +6,76 @@ namespace nix { struct TarArchive { - struct archive *archive; - Source *source; + struct archive * archive; + Source * source; std::vector<unsigned char> buffer; - void check(int err, const char *reason = "Failed to extract archive (%s)") { + void check(int err, const char * reason = "failed to extract archive: %s") + { if (err == ARCHIVE_EOF) throw EndOfFile("reached end of archive"); else if (err != ARCHIVE_OK) throw Error(reason, archive_error_string(this->archive)); } - TarArchive(Source& source) : buffer(4096) { + TarArchive(Source & source) : buffer(4096) + { this->archive = archive_read_new(); this->source = &source; archive_read_support_filter_all(archive); archive_read_support_format_all(archive); - check(archive_read_open(archive, (void *)this, TarArchive::callback_open, TarArchive::callback_read, TarArchive::callback_close), "Failed to open archive (%s)"); + check(archive_read_open(archive, + (void *)this, + TarArchive::callback_open, + TarArchive::callback_read, + TarArchive::callback_close), + "failed to open archive: %s"); } - TarArchive(const Path &path) { + TarArchive(const Path & path) + { this->archive = archive_read_new(); archive_read_support_filter_all(archive); archive_read_support_format_all(archive); - check(archive_read_open_filename(archive, path.c_str(), 16384), "Failed to open archive (%s)"); + check(archive_read_open_filename(archive, path.c_str(), 16384), "failed to open archive: %s"); } - // disable copy constructor - TarArchive(const TarArchive&) = delete; + TarArchive(const TarArchive &) = delete; - void close() { - check(archive_read_close(archive), "Failed to close archive (%s)"); + void close() + { + check(archive_read_close(archive), "failed to close archive: %s"); } - ~TarArchive() { + ~TarArchive() + { if (this->archive) archive_read_free(this->archive); } private: - static int callback_open(struct archive *, void *self) { + + static int callback_open(struct archive *, void * self) { return ARCHIVE_OK; } - static ssize_t callback_read(struct archive *archive, void *_self, const void **buffer) { - TarArchive *self = (TarArchive *)_self; + static ssize_t callback_read(struct archive * archive, void * _self, const void * * buffer) + { + auto self = (TarArchive *)_self; *buffer = self->buffer.data(); try { return self->source->read(self->buffer.data(), 4096); } catch (EndOfFile &) { return 0; - } catch (std::exception &err) { - archive_set_error(archive, EIO, "Source threw exception: %s", err.what()); - + } catch (std::exception & err) { + archive_set_error(archive, EIO, "source threw exception: %s", err.what()); return -1; } } - static int callback_close(struct archive *, void *self) { + static int callback_close(struct archive *, void * self) { return ARCHIVE_OK; } }; @@ -84,26 +94,27 @@ struct PushD { int r = chdir(oldDir); free(oldDir); if (r != 0) - std::cerr << "warning: failed to change directory back after tar extraction"; + warn("failed to change directory back after tar extraction"); /* can't throw out of a destructor */ } }; -static void extract_archive(TarArchive &archive, const Path & destDir) { +static void extract_archive(TarArchive & archive, const Path & destDir) +{ // need to chdir back *after* archive closing PushD newDir(destDir); - struct archive_entry *entry; int flags = ARCHIVE_EXTRACT_FFLAGS | ARCHIVE_EXTRACT_PERM | ARCHIVE_EXTRACT_SECURE_SYMLINKS | ARCHIVE_EXTRACT_SECURE_NODOTDOT | ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS; - for(;;) { + for (;;) { + struct archive_entry * entry; int r = archive_read_next_header(archive.archive, &entry); if (r == ARCHIVE_EOF) break; else if (r == ARCHIVE_WARN) - std::cerr << "warning: " << archive_error_string(archive.archive) << std::endl; + warn(archive_error_string(archive.archive)); else archive.check(r); |