diff options
author | Tim Kientzle <kientzle@gmail.com> | 2010-05-01 17:18:38 -0400 |
---|---|---|
committer | Tim Kientzle <kientzle@gmail.com> | 2010-05-01 17:18:38 -0400 |
commit | 9dd2a0e1cfc2bd542c99deee4b633c8b7e74a862 (patch) | |
tree | 8dfa910cde1c91188ff241a0bcf53682d5eab863 /tar/read.c | |
parent | d02d052b496da3eeb14d0402574319d5ad743657 (diff) | |
download | libarchive-9dd2a0e1cfc2bd542c99deee4b633c8b7e74a862.tar.gz |
Add --gid, --gname, --uid, --uname options to tar.
These allow you to override the user/group information both
when creating an archive and when restoring an archive.
I've also reimplemented --numeric-owner to be a synonym
for --gname="" --uname="".
Still needs tests...
SVN-Revision: 2349
Diffstat (limited to 'tar/read.c')
-rw-r--r-- | tar/read.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -204,10 +204,18 @@ read_archive(struct bsdtar *bsdtar, char mode) if (r == ARCHIVE_FATAL) break; - if (bsdtar->option_numeric_owner) { + if (bsdtar->uid >= 0) { + archive_entry_set_uid(entry, bsdtar->uid); archive_entry_set_uname(entry, NULL); + } + if (bsdtar->gid >= 0) { + archive_entry_set_gid(entry, bsdtar->gid); archive_entry_set_gname(entry, NULL); } + if (bsdtar->uname) + archive_entry_set_uname(entry, bsdtar->uname); + if (bsdtar->gname >= 0) + archive_entry_set_gname(entry, bsdtar->gname); /* * Exclude entries that are too old. |