fix: Enable computation of last known record and block based on lastknownrecord and lastknownblock even if last changes are updates
This commit is contained in:
@@ -174,11 +174,16 @@ var archiveCmd = &cobra.Command{
|
||||
viper.GetBool(overwriteFlag),
|
||||
|
||||
func(hdr *tar.Header, i int) error {
|
||||
if len(hdrs) <= i {
|
||||
// Ignore the first header, which is the last header which we already indexed
|
||||
if i == 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
if len(hdrs) <= i-1 {
|
||||
return errMissingTarHeader
|
||||
}
|
||||
|
||||
*hdr = *hdrs[i]
|
||||
*hdr = *hdrs[i-1]
|
||||
|
||||
return nil
|
||||
},
|
||||
@@ -372,7 +377,7 @@ func archive(
|
||||
first = false
|
||||
}
|
||||
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(-1, -1, hdr)); err != nil {
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(-1, -1, -1, -1, hdr)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -153,7 +153,7 @@ func delete(
|
||||
|
||||
dirty = true
|
||||
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(-1, -1, hdr)); err != nil {
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(-1, -1, -1, -1, hdr)); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,7 +150,7 @@ func move(
|
||||
|
||||
dirty = true
|
||||
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(-1, -1, hdr)); err != nil {
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(-1, -1, -1, -1, hdr)); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ var restoreCmd = &cobra.Command{
|
||||
return err
|
||||
}
|
||||
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(dbhdr.Record, dbhdr.Block, hdr)); err != nil {
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(dbhdr.Record, dbhdr.Lastknownrecord, dbhdr.Block, dbhdr.Lastknownblock, hdr)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -120,6 +120,7 @@ var updateCmd = &cobra.Command{
|
||||
false,
|
||||
|
||||
func(hdr *tar.Header, i int) error {
|
||||
// Ignore the first header, which is the last header which we already indexed
|
||||
if i == 0 {
|
||||
return nil
|
||||
}
|
||||
@@ -279,7 +280,7 @@ func update(
|
||||
if replacesContent {
|
||||
hdr.PAXRecords[pax.STFSRecordReplacesContent] = pax.STFSRecordReplacesContentTrue
|
||||
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(-1, -1, hdr)); err != nil {
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(-1, -1, -1, -1, hdr)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -353,7 +354,7 @@ func update(
|
||||
} else {
|
||||
hdr.Size = 0 // Don't try to seek after the record
|
||||
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(-1, -1, hdr)); err != nil {
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(-1, -1, -1, -1, hdr)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -2,8 +2,12 @@
|
||||
create table headers (
|
||||
-- Record of this header on the tape
|
||||
record integer not null,
|
||||
-- Record of the last update header of this header on the tape
|
||||
lastknownrecord integer not null,
|
||||
-- Block of this header in the record
|
||||
block integer not null,
|
||||
-- Block of the last update header of this header in the record
|
||||
lastknownblock integer not null,
|
||||
-- Typeflag is the type of header entry.
|
||||
-- The zero value is automatically promoted to either TypeReg or TypeDir
|
||||
-- depending on the presence of a trailing slash in Name.
|
||||
|
||||
@@ -35,31 +35,33 @@ func DBHeaderToTarHeader(dbhdr *models.Header) (*tar.Header, error) {
|
||||
return hdr, nil
|
||||
}
|
||||
|
||||
func TarHeaderToDBHeader(record, block int64, tarhdr *tar.Header) (*models.Header, error) {
|
||||
func TarHeaderToDBHeader(record, lastKnownRecord, block, lastKnownBlock int64, tarhdr *tar.Header) (*models.Header, error) {
|
||||
paxRecords, err := json.Marshal(tarhdr.PAXRecords)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
hdr := models.Header{
|
||||
Record: record,
|
||||
Block: block,
|
||||
Typeflag: int64(tarhdr.Typeflag),
|
||||
Name: tarhdr.Name,
|
||||
Linkname: tarhdr.Linkname,
|
||||
Size: tarhdr.Size,
|
||||
Mode: tarhdr.Mode,
|
||||
UID: int64(tarhdr.Uid),
|
||||
Gid: int64(tarhdr.Gid),
|
||||
Uname: tarhdr.Uname,
|
||||
Gname: tarhdr.Gname,
|
||||
Modtime: tarhdr.ModTime,
|
||||
Accesstime: tarhdr.AccessTime,
|
||||
Changetime: tarhdr.ChangeTime,
|
||||
Devmajor: tarhdr.Devmajor,
|
||||
Devminor: tarhdr.Devminor,
|
||||
Paxrecords: string(paxRecords),
|
||||
Format: int64(tarhdr.Format),
|
||||
Record: record,
|
||||
Lastknownrecord: lastKnownRecord,
|
||||
Block: block,
|
||||
Lastknownblock: lastKnownBlock,
|
||||
Typeflag: int64(tarhdr.Typeflag),
|
||||
Name: tarhdr.Name,
|
||||
Linkname: tarhdr.Linkname,
|
||||
Size: tarhdr.Size,
|
||||
Mode: tarhdr.Mode,
|
||||
UID: int64(tarhdr.Uid),
|
||||
Gid: int64(tarhdr.Gid),
|
||||
Uname: tarhdr.Uname,
|
||||
Gname: tarhdr.Gname,
|
||||
Modtime: tarhdr.ModTime,
|
||||
Accesstime: tarhdr.AccessTime,
|
||||
Changetime: tarhdr.ChangeTime,
|
||||
Devmajor: tarhdr.Devmajor,
|
||||
Devminor: tarhdr.Devminor,
|
||||
Paxrecords: string(paxRecords),
|
||||
Format: int64(tarhdr.Format),
|
||||
}
|
||||
|
||||
return &hdr, nil
|
||||
|
||||
@@ -25,7 +25,7 @@ func bindata_read(data []byte, name string) ([]byte, error) {
|
||||
return buf.Bytes(), nil
|
||||
}
|
||||
|
||||
var _db_sqlite_migrations_metadata_1637447083_sql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x56\xc1\x72\x1b\x37\x0c\x3d\xd7\x5f\x81\xc9\x25\xf6\x54\xab\x73\xa7\x99\x1e\xdc\xb8\x71\x3d\x63\x3b\x19\xd9\xaa\x73\xa5\x96\xd8\x5d\x56\x5c\x82\x05\xb9\x92\x37\x5f\xdf\x01\xb9\x54\x64\xa9\x52\xa7\xd3\x93\xa8\x25\xf0\x88\x07\x02\x0f\xac\x2a\xf8\xb1\x37\x2d\xab\x88\xb0\xf4\x17\x35\xa3\xac\xa2\x5a\x59\x84\x0e\x95\x46\x0e\x70\x79\x01\x00\x50\x55\xb0\xc0\x9a\x58\x03\x35\x10\x3b\x13\xa6\x7d\x20\x07\xb1\x13\x1f\x8f\xc9\x90\xb3\x95\x71\x11\x5b\x64\x70\x14\xc1\x0d\xd6\xce\x0a\xca\xaf\x96\xea\xf5\x21\x88\xc9\x20\xd9\x37\x59\xae\x92\xd9\x49\x94\xe7\xd1\x63\x63\x55\x0b\x26\xe4\xe3\x47\x8f\x02\x3a\xe1\xa1\x8b\x3c\xce\x77\xc6\x1d\xc2\x37\x64\x82\x8d\xb2\x03\x8a\x8b\x1a\x22\xf5\x2a\x9a\x5a\x59\x3b\x82\x67\xea\x29\xa2\x86\x48\x80\x26\x76\xc8\x09\x7f\x81\x2d\x50\x5e\xde\x18\x2e\x60\x1a\x3d\x3a\x6d\x5c\x5b\x98\x7b\xc6\x80\xae\x4e\xc7\x2b\x88\xac\x8c\x95\xdd\x60\x55\xe8\x84\xd8\xa3\xea\x31\x87\x12\x77\x41\x9f\xa2\x25\xb6\x82\xd3\x18\x8b\x99\x44\xda\x71\xf2\x39\xe2\x6b\xdc\x79\x80\x67\xd3\x2b\x1e\x61\x8d\xe3\xf7\xa4\x28\x6e\x31\x66\x6b\x6a\xc0\x1a\xb7\x86\xcb\x8d\xb2\x46\x43\x33\x11\xb9\x97\x6f\xd3\xfa\x69\xec\xc5\xe4\x2a\xb9\xcb\xea\xf8\x98\x1d\xf4\x3d\xb5\x92\xac\x1c\x58\x30\xdf\x50\x98\xad\xc6\x88\x21\x59\x4c\x5f\x4e\xb0\xfa\x82\xdc\x9b\x10\x0c\x39\x50\x4e\x43\x4f\x1a\x61\x65\x62\x76\x4d\xff\x4e\xba\x2e\x03\x32\xdc\xdd\x08\x1d\xda\x3a\xcc\xb7\x30\x98\x33\xf5\x75\xcb\x34\xf8\x23\x97\xf6\x9c\x4b\x3a\xa4\x64\x6d\xef\x98\x33\xf9\xc8\xa7\x1c\xfb\xb4\x67\x7c\xee\x9a\x54\x2f\x9f\x88\x7b\x15\xa5\x0a\x07\x17\x3c\xd6\xa6\x31\xa8\x67\xb2\xe5\xe0\x85\x4d\x44\x9e\xa7\x9f\xdf\x73\x29\x33\x0d\x4e\x07\x78\x20\xfd\x6c\x7a\x2c\x58\x91\x12\x96\x43\xc5\x18\x22\x04\xac\xc9\xe9\x94\x5d\xd3\x3a\x62\xcc\x5d\x71\x5d\xd7\x18\x82\xf8\xa5\xad\x8f\x9d\x72\x2d\xa6\xbf\x8d\x41\xab\x43\xe9\x90\x5d\x01\x11\x0c\xe1\x8d\x1b\xf1\x9e\xd7\x0c\x72\xbc\xe3\x3e\x0f\x15\xe0\xcb\xf5\x57\x31\xbc\x7d\x5c\xce\x0f\x90\xc2\xb0\xaa\xa6\xd8\x18\x03\xd9\x21\x1a\x72\x67\x60\x76\xfe\x0f\xa4\x4d\x63\x6a\x25\xf6\x10\x0b\xf1\x9e\xb4\xac\x41\x8b\x4a\x1d\xe5\x37\x87\x9d\xac\xe1\x92\xf1\xaf\xc1\x48\x1e\xa6\x86\xfe\x1e\x23\x84\xc1\x7b\xe2\x98\xeb\x5e\x25\xa7\x33\xa8\x99\xfe\x7f\x44\xad\x93\xd3\x19\xd4\x07\xf5\x27\x31\x68\xdc\x98\x1a\xc1\x0d\xfd\x0a\xf9\xb0\x55\x3f\x76\x8a\x4b\xab\x26\xd1\xcc\xd0\x1a\x37\x7d\x72\x3e\x59\xce\x0f\xc6\xfd\x0f\xec\xe4\x7c\xba\x95\xaf\xbf\xe6\x31\x10\x92\x8c\x42\xaf\xbc\x34\x80\xe4\x01\x5f\x23\x3a\x8d\xba\x68\x70\x16\xf3\xa3\x1a\x93\x66\xab\x34\x36\xc6\xa1\x2e\x36\x10\x3a\x1a\xac\x86\x4e\x6d\x50\x14\x2d\xe4\xf9\x80\xd0\x90\xb5\xb4\x15\x39\x6d\x88\xfb\x9f\x27\x8c\x1f\xfe\xf8\xed\xf1\xe6\xf3\x62\xbe\xc6\x71\x5b\xe6\x45\x55\xc1\x4b\x87\x8c\x90\xf7\x24\xba\x40\x3d\xa6\x16\x0d\x5e\xd5\x49\xb0\x94\xb5\x30\x78\x8f\x5c\xab\x80\xb3\xd4\x13\x13\x06\xf4\x6a\x2c\x38\x42\xba\x26\x17\xd5\x34\x95\xde\xff\xf2\x5e\x2e\x94\x55\x1d\x25\x93\x38\x6f\xe7\x33\x78\x77\xfb\xf9\xfe\xfa\xf1\x76\xee\xd7\xed\x7c\x83\x2c\xe2\xf6\xee\xea\xcd\xc4\x59\xe3\x98\x4e\xc8\x43\x67\x62\xb8\x92\x5a\x70\x15\xf6\x3e\x8e\xb0\x7c\xfe\x54\xfd\x04\x21\xb2\x71\xed\x51\x9e\x5e\x4e\xe8\x81\x09\x20\x53\x4b\x24\x43\xb2\x5e\x32\xa8\x91\xcd\x06\x35\x34\x4c\xbd\x44\x5d\x60\x28\xd5\x69\x6e\x77\x49\xc1\x84\x12\xd5\x3a\x4d\xae\x1a\x75\x9e\x5d\x9b\x5c\xcd\x8b\xfd\x4b\xf3\xea\xb5\xc0\xff\xb3\xa2\x4d\xbd\x5b\x54\x2c\x4c\x77\x96\x3e\x4e\x37\x18\x15\x4f\x05\x71\x24\x36\x32\xff\xe5\x9a\x30\xc2\x6a\x84\x45\x36\x7a\x94\x83\x94\x94\xd6\x0a\x43\xac\xb0\x69\x88\x23\xb4\x83\x74\xb6\x8a\x7b\x07\xec\x72\xfd\x64\x84\x80\x6c\x64\x08\xb0\x66\x85\x9c\x06\x3b\xa3\xd2\xa5\x0e\xc8\x55\x35\xf5\xde\x1a\xe5\x62\x1a\x63\x61\x47\xc3\x24\x35\xf6\x14\x82\x91\x87\x8f\x34\x49\x7a\x9c\x44\x92\xfb\xca\x24\x97\x6e\xed\x68\xeb\x0e\x49\xdc\x35\xfb\x9c\xdf\x6a\x3a\x6c\xff\xf5\x0a\x77\x72\x2e\x96\x26\x8a\x66\x4e\x49\x34\x1c\x62\x81\xbd\x9c\x0a\x91\x38\x3d\xb8\x1a\x58\x3e\x3d\x5f\x2f\xd2\xfd\xcf\x44\x7b\xae\x0a\x4c\xad\x7c\x7a\xba\x51\x03\xe8\x6a\x4a\xaf\x94\xc4\x64\x3a\xf8\x32\x60\xe1\x33\xd5\x6a\x09\xfc\xa0\xdf\x2f\xae\x3e\x5c\xec\xbf\x0d\x6f\x68\xeb\x2e\x34\x93\x7f\xfb\x36\xfc\xf0\x77\x00\x00\x00\xff\xff\x22\x0d\xa1\x4e\x40\x0a\x00\x00")
|
||||
var _db_sqlite_migrations_metadata_1637447083_sql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x56\xcd\x72\x1b\x37\x0c\x3e\xd7\x4f\x81\xc9\x25\xf6\x54\xab\x73\xa7\x99\x1e\xdc\xb8\x71\x33\x63\x3b\x19\xd9\xaa\x73\xa5\x96\xd8\x5d\x56\x5c\x82\x05\xb9\x92\x37\x4f\xdf\x01\xb9\x54\x64\x2b\x92\xd3\xe9\x49\x2b\x12\xf8\x80\x0f\xc4\x5f\x55\xc1\xcf\xbd\x69\x59\x45\x84\xa5\x3f\xab\x19\xe5\x2b\xaa\x95\x45\xe8\x50\x69\xe4\x00\xe7\x67\x00\x00\x55\x05\x0b\xac\x89\x35\x50\x03\xb1\x33\x61\xba\x07\x72\x10\x3b\xd1\xf1\x98\x04\x39\x4b\x19\x17\xb1\x45\x06\x47\x11\xdc\x60\xed\xec\x7b\x28\x08\x56\x85\x08\x83\xd7\x62\xb6\x00\x9e\xc6\x17\x8d\xb5\xa3\xad\x7b\xcd\xd0\xef\x96\xea\xf5\x4b\x34\x93\xd1\xb2\x6e\x92\x5c\x25\xb1\x1f\x41\xf9\x11\x6f\x0f\xf1\x77\xfe\xbe\x62\xe8\x61\xf4\xd8\x58\xd5\x82\x09\x99\xf0\xe8\x51\xd0\x27\x60\x74\x91\xc7\xf9\x4e\xb8\x43\xf8\x8a\x4c\xb0\x51\x76\x40\x51\x51\x43\xa4\x5e\x45\x53\x2b\x6b\x47\xf0\x4c\x3d\x45\xd4\x10\x09\xd0\xc4\x0e\x39\xe1\x2f\xb0\x05\xca\x9f\x57\x86\x0b\x98\x46\x8f\x4e\x1b\xd7\x96\x58\x7b\xc6\x80\xae\x4e\xe6\x15\x44\x56\xc6\xca\x6d\xb0\x2a\x74\xc2\xf0\x4e\xf5\x98\x5d\x89\x3b\xa7\x8f\xd1\x12\x59\xc1\x69\x8c\xc5\x4c\x22\xdd\x38\x39\x8e\xf8\x14\x77\x1a\xe0\xd9\xf4\x8a\x47\x58\xe3\xf8\x2d\x28\x8a\x5b\x8c\x59\x9a\x1a\xb0\xc6\xad\xe1\x7c\xa3\xac\xd1\xd0\x4c\x44\x6e\xe4\x6c\xfa\xbe\x1f\x7b\x11\xb9\xc8\x81\x37\x6e\x7d\x68\x66\x07\x7d\x43\xad\x04\x2b\x3b\x16\xcc\x57\x14\x66\xab\x31\x62\x48\x12\xd3\xc9\x11\x56\x9f\x91\x7b\x13\x82\x21\x07\xca\x69\xe8\x49\x23\xac\x4c\xcc\xaa\xe9\xdf\x51\xd5\x65\x40\x86\x8f\x57\x42\x87\xb6\x0e\xf3\x2b\x0c\xe6\x44\x22\x5f\x33\x0d\xfe\x40\xa5\x3d\xa5\x92\x8c\x94\xa8\xed\x99\x39\x11\x8f\x6c\xe5\x50\xa7\x3d\xa1\xf3\x31\x97\xc5\x07\xe2\x5e\x45\xc9\xc2\xc1\x05\x8f\xb5\x69\x0c\xea\x99\x5c\x39\x78\x64\x13\x91\xe7\xe9\xe7\xcf\x9c\xca\x4c\x83\xd3\x01\x6e\x49\x3f\x98\x1e\x0b\x56\xa4\x84\xe5\x50\x31\x86\x08\x01\x6b\x72\x3a\x45\xd7\xb4\x8e\x18\x73\x55\x5c\xd6\x35\x86\x20\x7a\xe9\xea\x7d\xa7\x5c\x8b\xe9\x6f\x63\xd0\xea\x50\x2a\x64\x97\x40\x04\x43\x78\xa6\x46\xbc\xa7\x35\x83\xec\xef\xb8\xcf\x43\x05\xf8\x7c\xf9\x45\x04\xaf\xef\x96\xf3\x17\x48\x61\x58\x55\x93\x6f\x8c\x81\xec\x10\x0d\xb9\x13\x30\x3b\xfd\x5b\xd2\xa6\x31\xb5\x12\x79\x88\x85\x78\x4f\x5a\xbe\x21\xb5\x94\x83\xf8\x66\xb7\x93\x34\x9c\x33\xfe\x33\x18\x89\xc3\x54\xd0\xdf\x7c\x84\x30\x78\x4f\x1c\x73\xde\xab\xa4\x74\x02\x35\xd3\xff\x8f\xa8\x75\x52\x3a\x81\x7a\xab\xfe\x26\x06\x8d\x1b\x53\x23\xb8\xa1\x5f\x21\xbf\x2c\xd5\xf7\x9d\xe2\x52\xaa\xa9\xaf\x66\x68\x8d\x9b\x3e\x29\x1f\x4d\xe7\x5b\xe3\xfe\x07\x76\x52\x3e\x5e\xca\x97\x5f\xf2\x48\x0a\xa9\x8d\x42\xaf\xbc\x14\x80\xc4\x01\x9f\x22\x3a\x8d\xba\xf4\xe0\xdc\xd5\x0f\x72\x4c\x8a\xad\xd2\xd8\x18\x87\xba\xc8\x40\xe8\x68\xb0\x1a\x3a\xb5\x41\xe9\x68\xa1\x8c\x90\x86\xac\xa5\xad\xb4\xd3\x86\xb8\xff\x75\xc2\xf8\xe9\xaf\x3f\xee\xae\x3e\x2d\xe6\x6b\x1c\xb7\x65\x70\x54\x15\x3c\x76\xc8\x08\xf9\x4e\xbc\x0b\xd4\x63\x2a\xd1\xe0\x55\x9d\x1a\x96\xb2\x16\x06\xef\x91\x6b\x15\x70\x96\x6a\x62\xc2\x80\x5e\x8d\x05\x47\x48\xd7\xe4\xa2\x9a\xc6\xd3\xdb\xdf\xde\xca\x83\xb2\xaa\xa3\x44\x12\xe7\xed\x7c\x06\x6f\xae\x3f\xdd\x5c\xde\x5d\xcf\xfd\xba\x9d\x6f\x90\xa5\xb9\xbd\xb9\x78\x36\x71\xd6\x38\x26\x0b\x79\xe8\x4c\x0c\x57\x92\x0b\xae\xc2\xde\xc7\x11\x96\x0f\x1f\xaa\x5f\x20\x44\x36\xae\x3d\x88\xd3\xe3\x91\x7e\x60\x02\xc8\xd4\x92\x96\x21\x51\x2f\x11\xd4\xc8\x66\x83\x1a\x1a\xa6\x5e\xbc\x2e\x30\x94\xf2\x34\x97\xbb\x84\x60\x42\x89\x6a\x9d\x26\x57\x8d\x3a\xcf\xae\x4d\xce\xe6\xc5\xfe\xa3\x79\xf5\x54\xe0\xbf\xdf\xd1\xa6\xda\x2d\x5d\x2c\x4c\x6f\x96\x0e\xa7\x17\x8c\x8a\xa7\x84\x38\x68\x36\xb2\x08\xc8\x33\x61\x84\xd5\x08\x8b\x2c\x74\x27\x86\x94\xa4\xd6\x0a\x43\xac\xb0\x69\x88\x23\xb4\x83\x54\xb6\x8a\x7b\x06\x76\xb1\xbe\x37\x42\x40\x2e\x32\x04\x58\xb3\x42\x4e\x83\x9d\x51\xe9\x92\x07\xe4\xaa\x9a\x7a\x6f\x8d\x72\x31\x8d\xb1\xb0\xa3\x61\x52\x37\xf6\x14\x82\x91\x55\x4e\x8a\x24\x6d\x29\x91\xe4\xbd\x32\xc9\xa5\x4b\x6b\xc9\x4b\x12\x1f\x9b\x7d\xce\xcf\x7b\x3a\x6c\x5f\x7d\xc2\x5d\x3b\x17\x49\x13\xa5\x67\x4e\x41\x34\x1c\x62\x81\x3d\x9f\x12\x91\x78\xda\xa1\x96\xf7\x0f\x97\x8b\xf4\xfe\x33\xe9\x3d\x17\x05\xa6\x56\x3e\x2d\xa3\xd4\x00\xba\x9a\xd2\x96\x92\x98\x4c\x86\xcf\x03\x16\x3e\x53\xae\x16\xc7\x5f\xd4\xfb\xd9\xc5\xbb\xb3\xfd\x6d\xf7\x8a\xb6\xee\x4c\x33\xf9\xe7\xdb\xee\xbb\x7f\x03\x00\x00\xff\xff\x4b\x3a\xfd\xed\x12\x0b\x00\x00")
|
||||
|
||||
func db_sqlite_migrations_metadata_1637447083_sql() ([]byte, error) {
|
||||
return bindata_read(
|
||||
|
||||
@@ -22,107 +22,117 @@ import (
|
||||
|
||||
// Header is an object representing the database table.
|
||||
type Header struct {
|
||||
Record int64 `boil:"record" json:"record" toml:"record" yaml:"record"`
|
||||
Block int64 `boil:"block" json:"block" toml:"block" yaml:"block"`
|
||||
Typeflag int64 `boil:"typeflag" json:"typeflag" toml:"typeflag" yaml:"typeflag"`
|
||||
Name string `boil:"name" json:"name" toml:"name" yaml:"name"`
|
||||
Linkname string `boil:"linkname" json:"linkname" toml:"linkname" yaml:"linkname"`
|
||||
Size int64 `boil:"size" json:"size" toml:"size" yaml:"size"`
|
||||
Mode int64 `boil:"mode" json:"mode" toml:"mode" yaml:"mode"`
|
||||
UID int64 `boil:"uid" json:"uid" toml:"uid" yaml:"uid"`
|
||||
Gid int64 `boil:"gid" json:"gid" toml:"gid" yaml:"gid"`
|
||||
Uname string `boil:"uname" json:"uname" toml:"uname" yaml:"uname"`
|
||||
Gname string `boil:"gname" json:"gname" toml:"gname" yaml:"gname"`
|
||||
Modtime time.Time `boil:"modtime" json:"modtime" toml:"modtime" yaml:"modtime"`
|
||||
Accesstime time.Time `boil:"accesstime" json:"accesstime" toml:"accesstime" yaml:"accesstime"`
|
||||
Changetime time.Time `boil:"changetime" json:"changetime" toml:"changetime" yaml:"changetime"`
|
||||
Devmajor int64 `boil:"devmajor" json:"devmajor" toml:"devmajor" yaml:"devmajor"`
|
||||
Devminor int64 `boil:"devminor" json:"devminor" toml:"devminor" yaml:"devminor"`
|
||||
Paxrecords string `boil:"paxrecords" json:"paxrecords" toml:"paxrecords" yaml:"paxrecords"`
|
||||
Format int64 `boil:"format" json:"format" toml:"format" yaml:"format"`
|
||||
Record int64 `boil:"record" json:"record" toml:"record" yaml:"record"`
|
||||
Lastknownrecord int64 `boil:"lastknownrecord" json:"lastknownrecord" toml:"lastknownrecord" yaml:"lastknownrecord"`
|
||||
Block int64 `boil:"block" json:"block" toml:"block" yaml:"block"`
|
||||
Lastknownblock int64 `boil:"lastknownblock" json:"lastknownblock" toml:"lastknownblock" yaml:"lastknownblock"`
|
||||
Typeflag int64 `boil:"typeflag" json:"typeflag" toml:"typeflag" yaml:"typeflag"`
|
||||
Name string `boil:"name" json:"name" toml:"name" yaml:"name"`
|
||||
Linkname string `boil:"linkname" json:"linkname" toml:"linkname" yaml:"linkname"`
|
||||
Size int64 `boil:"size" json:"size" toml:"size" yaml:"size"`
|
||||
Mode int64 `boil:"mode" json:"mode" toml:"mode" yaml:"mode"`
|
||||
UID int64 `boil:"uid" json:"uid" toml:"uid" yaml:"uid"`
|
||||
Gid int64 `boil:"gid" json:"gid" toml:"gid" yaml:"gid"`
|
||||
Uname string `boil:"uname" json:"uname" toml:"uname" yaml:"uname"`
|
||||
Gname string `boil:"gname" json:"gname" toml:"gname" yaml:"gname"`
|
||||
Modtime time.Time `boil:"modtime" json:"modtime" toml:"modtime" yaml:"modtime"`
|
||||
Accesstime time.Time `boil:"accesstime" json:"accesstime" toml:"accesstime" yaml:"accesstime"`
|
||||
Changetime time.Time `boil:"changetime" json:"changetime" toml:"changetime" yaml:"changetime"`
|
||||
Devmajor int64 `boil:"devmajor" json:"devmajor" toml:"devmajor" yaml:"devmajor"`
|
||||
Devminor int64 `boil:"devminor" json:"devminor" toml:"devminor" yaml:"devminor"`
|
||||
Paxrecords string `boil:"paxrecords" json:"paxrecords" toml:"paxrecords" yaml:"paxrecords"`
|
||||
Format int64 `boil:"format" json:"format" toml:"format" yaml:"format"`
|
||||
|
||||
R *headerR `boil:"-" json:"-" toml:"-" yaml:"-"`
|
||||
L headerL `boil:"-" json:"-" toml:"-" yaml:"-"`
|
||||
}
|
||||
|
||||
var HeaderColumns = struct {
|
||||
Record string
|
||||
Block string
|
||||
Typeflag string
|
||||
Name string
|
||||
Linkname string
|
||||
Size string
|
||||
Mode string
|
||||
UID string
|
||||
Gid string
|
||||
Uname string
|
||||
Gname string
|
||||
Modtime string
|
||||
Accesstime string
|
||||
Changetime string
|
||||
Devmajor string
|
||||
Devminor string
|
||||
Paxrecords string
|
||||
Format string
|
||||
Record string
|
||||
Lastknownrecord string
|
||||
Block string
|
||||
Lastknownblock string
|
||||
Typeflag string
|
||||
Name string
|
||||
Linkname string
|
||||
Size string
|
||||
Mode string
|
||||
UID string
|
||||
Gid string
|
||||
Uname string
|
||||
Gname string
|
||||
Modtime string
|
||||
Accesstime string
|
||||
Changetime string
|
||||
Devmajor string
|
||||
Devminor string
|
||||
Paxrecords string
|
||||
Format string
|
||||
}{
|
||||
Record: "record",
|
||||
Block: "block",
|
||||
Typeflag: "typeflag",
|
||||
Name: "name",
|
||||
Linkname: "linkname",
|
||||
Size: "size",
|
||||
Mode: "mode",
|
||||
UID: "uid",
|
||||
Gid: "gid",
|
||||
Uname: "uname",
|
||||
Gname: "gname",
|
||||
Modtime: "modtime",
|
||||
Accesstime: "accesstime",
|
||||
Changetime: "changetime",
|
||||
Devmajor: "devmajor",
|
||||
Devminor: "devminor",
|
||||
Paxrecords: "paxrecords",
|
||||
Format: "format",
|
||||
Record: "record",
|
||||
Lastknownrecord: "lastknownrecord",
|
||||
Block: "block",
|
||||
Lastknownblock: "lastknownblock",
|
||||
Typeflag: "typeflag",
|
||||
Name: "name",
|
||||
Linkname: "linkname",
|
||||
Size: "size",
|
||||
Mode: "mode",
|
||||
UID: "uid",
|
||||
Gid: "gid",
|
||||
Uname: "uname",
|
||||
Gname: "gname",
|
||||
Modtime: "modtime",
|
||||
Accesstime: "accesstime",
|
||||
Changetime: "changetime",
|
||||
Devmajor: "devmajor",
|
||||
Devminor: "devminor",
|
||||
Paxrecords: "paxrecords",
|
||||
Format: "format",
|
||||
}
|
||||
|
||||
var HeaderTableColumns = struct {
|
||||
Record string
|
||||
Block string
|
||||
Typeflag string
|
||||
Name string
|
||||
Linkname string
|
||||
Size string
|
||||
Mode string
|
||||
UID string
|
||||
Gid string
|
||||
Uname string
|
||||
Gname string
|
||||
Modtime string
|
||||
Accesstime string
|
||||
Changetime string
|
||||
Devmajor string
|
||||
Devminor string
|
||||
Paxrecords string
|
||||
Format string
|
||||
Record string
|
||||
Lastknownrecord string
|
||||
Block string
|
||||
Lastknownblock string
|
||||
Typeflag string
|
||||
Name string
|
||||
Linkname string
|
||||
Size string
|
||||
Mode string
|
||||
UID string
|
||||
Gid string
|
||||
Uname string
|
||||
Gname string
|
||||
Modtime string
|
||||
Accesstime string
|
||||
Changetime string
|
||||
Devmajor string
|
||||
Devminor string
|
||||
Paxrecords string
|
||||
Format string
|
||||
}{
|
||||
Record: "headers.record",
|
||||
Block: "headers.block",
|
||||
Typeflag: "headers.typeflag",
|
||||
Name: "headers.name",
|
||||
Linkname: "headers.linkname",
|
||||
Size: "headers.size",
|
||||
Mode: "headers.mode",
|
||||
UID: "headers.uid",
|
||||
Gid: "headers.gid",
|
||||
Uname: "headers.uname",
|
||||
Gname: "headers.gname",
|
||||
Modtime: "headers.modtime",
|
||||
Accesstime: "headers.accesstime",
|
||||
Changetime: "headers.changetime",
|
||||
Devmajor: "headers.devmajor",
|
||||
Devminor: "headers.devminor",
|
||||
Paxrecords: "headers.paxrecords",
|
||||
Format: "headers.format",
|
||||
Record: "headers.record",
|
||||
Lastknownrecord: "headers.lastknownrecord",
|
||||
Block: "headers.block",
|
||||
Lastknownblock: "headers.lastknownblock",
|
||||
Typeflag: "headers.typeflag",
|
||||
Name: "headers.name",
|
||||
Linkname: "headers.linkname",
|
||||
Size: "headers.size",
|
||||
Mode: "headers.mode",
|
||||
UID: "headers.uid",
|
||||
Gid: "headers.gid",
|
||||
Uname: "headers.uname",
|
||||
Gname: "headers.gname",
|
||||
Modtime: "headers.modtime",
|
||||
Accesstime: "headers.accesstime",
|
||||
Changetime: "headers.changetime",
|
||||
Devmajor: "headers.devmajor",
|
||||
Devminor: "headers.devminor",
|
||||
Paxrecords: "headers.paxrecords",
|
||||
Format: "headers.format",
|
||||
}
|
||||
|
||||
// Generated where
|
||||
@@ -172,43 +182,47 @@ func (w whereHelpertime_Time) GTE(x time.Time) qm.QueryMod {
|
||||
}
|
||||
|
||||
var HeaderWhere = struct {
|
||||
Record whereHelperint64
|
||||
Block whereHelperint64
|
||||
Typeflag whereHelperint64
|
||||
Name whereHelperstring
|
||||
Linkname whereHelperstring
|
||||
Size whereHelperint64
|
||||
Mode whereHelperint64
|
||||
UID whereHelperint64
|
||||
Gid whereHelperint64
|
||||
Uname whereHelperstring
|
||||
Gname whereHelperstring
|
||||
Modtime whereHelpertime_Time
|
||||
Accesstime whereHelpertime_Time
|
||||
Changetime whereHelpertime_Time
|
||||
Devmajor whereHelperint64
|
||||
Devminor whereHelperint64
|
||||
Paxrecords whereHelperstring
|
||||
Format whereHelperint64
|
||||
Record whereHelperint64
|
||||
Lastknownrecord whereHelperint64
|
||||
Block whereHelperint64
|
||||
Lastknownblock whereHelperint64
|
||||
Typeflag whereHelperint64
|
||||
Name whereHelperstring
|
||||
Linkname whereHelperstring
|
||||
Size whereHelperint64
|
||||
Mode whereHelperint64
|
||||
UID whereHelperint64
|
||||
Gid whereHelperint64
|
||||
Uname whereHelperstring
|
||||
Gname whereHelperstring
|
||||
Modtime whereHelpertime_Time
|
||||
Accesstime whereHelpertime_Time
|
||||
Changetime whereHelpertime_Time
|
||||
Devmajor whereHelperint64
|
||||
Devminor whereHelperint64
|
||||
Paxrecords whereHelperstring
|
||||
Format whereHelperint64
|
||||
}{
|
||||
Record: whereHelperint64{field: "\"headers\".\"record\""},
|
||||
Block: whereHelperint64{field: "\"headers\".\"block\""},
|
||||
Typeflag: whereHelperint64{field: "\"headers\".\"typeflag\""},
|
||||
Name: whereHelperstring{field: "\"headers\".\"name\""},
|
||||
Linkname: whereHelperstring{field: "\"headers\".\"linkname\""},
|
||||
Size: whereHelperint64{field: "\"headers\".\"size\""},
|
||||
Mode: whereHelperint64{field: "\"headers\".\"mode\""},
|
||||
UID: whereHelperint64{field: "\"headers\".\"uid\""},
|
||||
Gid: whereHelperint64{field: "\"headers\".\"gid\""},
|
||||
Uname: whereHelperstring{field: "\"headers\".\"uname\""},
|
||||
Gname: whereHelperstring{field: "\"headers\".\"gname\""},
|
||||
Modtime: whereHelpertime_Time{field: "\"headers\".\"modtime\""},
|
||||
Accesstime: whereHelpertime_Time{field: "\"headers\".\"accesstime\""},
|
||||
Changetime: whereHelpertime_Time{field: "\"headers\".\"changetime\""},
|
||||
Devmajor: whereHelperint64{field: "\"headers\".\"devmajor\""},
|
||||
Devminor: whereHelperint64{field: "\"headers\".\"devminor\""},
|
||||
Paxrecords: whereHelperstring{field: "\"headers\".\"paxrecords\""},
|
||||
Format: whereHelperint64{field: "\"headers\".\"format\""},
|
||||
Record: whereHelperint64{field: "\"headers\".\"record\""},
|
||||
Lastknownrecord: whereHelperint64{field: "\"headers\".\"lastknownrecord\""},
|
||||
Block: whereHelperint64{field: "\"headers\".\"block\""},
|
||||
Lastknownblock: whereHelperint64{field: "\"headers\".\"lastknownblock\""},
|
||||
Typeflag: whereHelperint64{field: "\"headers\".\"typeflag\""},
|
||||
Name: whereHelperstring{field: "\"headers\".\"name\""},
|
||||
Linkname: whereHelperstring{field: "\"headers\".\"linkname\""},
|
||||
Size: whereHelperint64{field: "\"headers\".\"size\""},
|
||||
Mode: whereHelperint64{field: "\"headers\".\"mode\""},
|
||||
UID: whereHelperint64{field: "\"headers\".\"uid\""},
|
||||
Gid: whereHelperint64{field: "\"headers\".\"gid\""},
|
||||
Uname: whereHelperstring{field: "\"headers\".\"uname\""},
|
||||
Gname: whereHelperstring{field: "\"headers\".\"gname\""},
|
||||
Modtime: whereHelpertime_Time{field: "\"headers\".\"modtime\""},
|
||||
Accesstime: whereHelpertime_Time{field: "\"headers\".\"accesstime\""},
|
||||
Changetime: whereHelpertime_Time{field: "\"headers\".\"changetime\""},
|
||||
Devmajor: whereHelperint64{field: "\"headers\".\"devmajor\""},
|
||||
Devminor: whereHelperint64{field: "\"headers\".\"devminor\""},
|
||||
Paxrecords: whereHelperstring{field: "\"headers\".\"paxrecords\""},
|
||||
Format: whereHelperint64{field: "\"headers\".\"format\""},
|
||||
}
|
||||
|
||||
// HeaderRels is where relationship names are stored.
|
||||
@@ -228,8 +242,8 @@ func (*headerR) NewStruct() *headerR {
|
||||
type headerL struct{}
|
||||
|
||||
var (
|
||||
headerAllColumns = []string{"record", "block", "typeflag", "name", "linkname", "size", "mode", "uid", "gid", "uname", "gname", "modtime", "accesstime", "changetime", "devmajor", "devminor", "paxrecords", "format"}
|
||||
headerColumnsWithoutDefault = []string{"record", "block", "typeflag", "name", "linkname", "size", "mode", "uid", "gid", "uname", "gname", "modtime", "accesstime", "changetime", "devmajor", "devminor", "paxrecords", "format"}
|
||||
headerAllColumns = []string{"record", "lastknownrecord", "block", "lastknownblock", "typeflag", "name", "linkname", "size", "mode", "uid", "gid", "uname", "gname", "modtime", "accesstime", "changetime", "devmajor", "devminor", "paxrecords", "format"}
|
||||
headerColumnsWithoutDefault = []string{"record", "lastknownrecord", "block", "lastknownblock", "typeflag", "name", "linkname", "size", "mode", "uid", "gid", "uname", "gname", "modtime", "accesstime", "changetime", "devmajor", "devminor", "paxrecords", "format"}
|
||||
headerColumnsWithDefault = []string{}
|
||||
headerPrimaryKeyColumns = []string{"name"}
|
||||
)
|
||||
|
||||
@@ -568,7 +568,7 @@ func testHeadersSelect(t *testing.T) {
|
||||
}
|
||||
|
||||
var (
|
||||
headerDBTypes = map[string]string{`Record`: `INTEGER`, `Block`: `INTEGER`, `Typeflag`: `INTEGER`, `Name`: `TEXT`, `Linkname`: `TEXT`, `Size`: `INTEGER`, `Mode`: `INTEGER`, `UID`: `INTEGER`, `Gid`: `INTEGER`, `Uname`: `TEXT`, `Gname`: `TEXT`, `Modtime`: `DATE`, `Accesstime`: `DATE`, `Changetime`: `DATE`, `Devmajor`: `INTEGER`, `Devminor`: `INTEGER`, `Paxrecords`: `TEXT`, `Format`: `INTEGER`}
|
||||
headerDBTypes = map[string]string{`Record`: `INTEGER`, `Lastknownrecord`: `INTEGER`, `Block`: `INTEGER`, `Lastknownblock`: `INTEGER`, `Typeflag`: `INTEGER`, `Name`: `TEXT`, `Linkname`: `TEXT`, `Size`: `INTEGER`, `Mode`: `INTEGER`, `UID`: `INTEGER`, `Gid`: `INTEGER`, `Uname`: `TEXT`, `Gname`: `TEXT`, `Modtime`: `DATE`, `Accesstime`: `DATE`, `Changetime`: `DATE`, `Devmajor`: `INTEGER`, `Devminor`: `INTEGER`, `Paxrecords`: `TEXT`, `Format`: `INTEGER`}
|
||||
_ = bytes.MinRead
|
||||
)
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
|
||||
var (
|
||||
TARHeaderCSV = []string{
|
||||
"record", "block", "typeflag", "name", "linkname", "size", "mode", "uid", "gid", "uname", "gname", "modtime", "accesstime", "changetime", "devmajor", "devminor", "paxrecords", "format",
|
||||
"record", "lastknownrecord", "block", "lastknownblock", "typeflag", "name", "linkname", "size", "mode", "uid", "gid", "uname", "gname", "modtime", "accesstime", "changetime", "devmajor", "devminor", "paxrecords", "format",
|
||||
}
|
||||
)
|
||||
|
||||
@@ -20,8 +20,8 @@ func PrintCSV(input []string) error {
|
||||
return w.WriteAll([][]string{input})
|
||||
}
|
||||
|
||||
func GetTARHeaderAsCSV(record, block int64, hdr *tar.Header) []string {
|
||||
func GetTARHeaderAsCSV(record, lastKnownRecord, block, lastKnownBlock int64, hdr *tar.Header) []string {
|
||||
return []string{
|
||||
fmt.Sprintf("%v", record), fmt.Sprintf("%v", block), fmt.Sprintf("%v", hdr.Typeflag), hdr.Name, hdr.Linkname, fmt.Sprintf("%v", hdr.Size), fmt.Sprintf("%v", hdr.Mode), fmt.Sprintf("%v", hdr.Uid), fmt.Sprintf("%v", hdr.Gid), fmt.Sprintf("%v", hdr.Uname), fmt.Sprintf("%v", hdr.Gname), hdr.ModTime.Format(time.RFC3339), hdr.AccessTime.Format(time.RFC3339), hdr.ChangeTime.Format(time.RFC3339), fmt.Sprintf("%v", hdr.Devmajor), fmt.Sprintf("%v", hdr.Devminor), fmt.Sprintf("%v", hdr.PAXRecords), fmt.Sprintf("%v", hdr.Format),
|
||||
fmt.Sprintf("%v", record), fmt.Sprintf("%v", lastKnownRecord), fmt.Sprintf("%v", block), fmt.Sprintf("%v", lastKnownBlock), fmt.Sprintf("%v", hdr.Typeflag), hdr.Name, hdr.Linkname, fmt.Sprintf("%v", hdr.Size), fmt.Sprintf("%v", hdr.Mode), fmt.Sprintf("%v", hdr.Uid), fmt.Sprintf("%v", hdr.Gid), fmt.Sprintf("%v", hdr.Uname), fmt.Sprintf("%v", hdr.Gname), hdr.ModTime.Format(time.RFC3339), hdr.AccessTime.Format(time.RFC3339), hdr.ChangeTime.Format(time.RFC3339), fmt.Sprintf("%v", hdr.Devmajor), fmt.Sprintf("%v", hdr.Devminor), fmt.Sprintf("%v", hdr.PAXRecords), fmt.Sprintf("%v", hdr.Format),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -147,7 +147,7 @@ func (p *MetadataPersister) GetHeaderDirectChildren(ctx context.Context, name st
|
||||
|
||||
if err := queries.Raw(
|
||||
fmt.Sprintf(
|
||||
`select %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v,
|
||||
`select %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v, %v,
|
||||
length(replace(%v, ?, '')) - length(replace(replace(%v, ?, ''), '/', '')) as depth
|
||||
from %v
|
||||
where %v like ?
|
||||
@@ -160,7 +160,9 @@ where %v like ?
|
||||
)
|
||||
and not %v in ('', '.', '/', './')`,
|
||||
models.HeaderColumns.Record,
|
||||
models.HeaderColumns.Lastknownrecord,
|
||||
models.HeaderColumns.Block,
|
||||
models.HeaderColumns.Lastknownblock,
|
||||
models.HeaderColumns.Typeflag,
|
||||
models.HeaderColumns.Name,
|
||||
models.HeaderColumns.Linkname,
|
||||
@@ -237,10 +239,10 @@ func (p *MetadataPersister) GetLastIndexedRecordAndBlock(ctx context.Context, re
|
||||
if err := queries.Raw(
|
||||
fmt.Sprintf(
|
||||
`select %v, %v, ((%v*$1)+%v) as location from %v order by location desc limit 1`,
|
||||
models.HeaderColumns.Record,
|
||||
models.HeaderColumns.Block,
|
||||
models.HeaderColumns.Record,
|
||||
models.HeaderColumns.Block,
|
||||
models.HeaderColumns.Lastknownrecord,
|
||||
models.HeaderColumns.Lastknownblock,
|
||||
models.HeaderColumns.Lastknownrecord,
|
||||
models.HeaderColumns.Lastknownblock,
|
||||
models.TableNames.Headers,
|
||||
),
|
||||
recordSize,
|
||||
@@ -252,5 +254,5 @@ func (p *MetadataPersister) GetLastIndexedRecordAndBlock(ctx context.Context, re
|
||||
return 0, 0, err
|
||||
}
|
||||
|
||||
return header.Record, header.Block, nil
|
||||
return header.Lastknownrecord, header.Lastknownblock, nil
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ func Find(
|
||||
return []*tar.Header{}, err
|
||||
}
|
||||
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(dbhdr.Record, dbhdr.Block, hdr)); err != nil {
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(dbhdr.Record, dbhdr.Lastknownrecord, dbhdr.Block, dbhdr.Lastknownblock, hdr)); err != nil {
|
||||
return []*tar.Header{}, err
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ func List(
|
||||
return []*tar.Header{}, err
|
||||
}
|
||||
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(dbhdr.Record, dbhdr.Block, hdr)); err != nil {
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(dbhdr.Record, dbhdr.Lastknownrecord, dbhdr.Block, dbhdr.Lastknownblock, hdr)); err != nil {
|
||||
return []*tar.Header{}, err
|
||||
}
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ func Fetch(
|
||||
return err
|
||||
}
|
||||
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(int64(record), int64(block), hdr)); err != nil {
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(int64(record), -1, int64(block), -1, hdr)); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ func indexHeader(
|
||||
hdr.Name = newName
|
||||
}
|
||||
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(record, block, hdr)); err != nil {
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(record, -1, block, -1, hdr)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -297,7 +297,7 @@ func indexHeader(
|
||||
|
||||
switch stfsAction {
|
||||
case pax.STFSRecordActionCreate:
|
||||
dbhdr, err := converters.TarHeaderToDBHeader(record, block, hdr)
|
||||
dbhdr, err := converters.TarHeaderToDBHeader(record, record, block, block, hdr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -320,7 +320,7 @@ func indexHeader(
|
||||
var newHdr *models.Header
|
||||
if replacesContent, ok := hdr.PAXRecords[pax.STFSRecordReplacesContent]; ok && replacesContent == pax.STFSRecordReplacesContentTrue {
|
||||
// Content & metadata update; use the new record & block
|
||||
h, err := converters.TarHeaderToDBHeader(record, block, hdr)
|
||||
h, err := converters.TarHeaderToDBHeader(record, record, block, block, hdr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -333,7 +333,7 @@ func indexHeader(
|
||||
return err
|
||||
}
|
||||
|
||||
h, err := converters.TarHeaderToDBHeader(oldHdr.Record, oldHdr.Block, hdr)
|
||||
h, err := converters.TarHeaderToDBHeader(oldHdr.Record, record, oldHdr.Block, block, hdr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ func Query(
|
||||
}
|
||||
}
|
||||
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(record, block, hdr)); err != nil {
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(record, -1, block, -1, hdr)); err != nil {
|
||||
return []*tar.Header{}, err
|
||||
}
|
||||
|
||||
@@ -196,7 +196,7 @@ func Query(
|
||||
}
|
||||
}
|
||||
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(record, block, hdr)); err != nil {
|
||||
if err := formatting.PrintCSV(formatting.GetTARHeaderAsCSV(record, -1, block, -1, hdr)); err != nil {
|
||||
return []*tar.Header{}, err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user