|
|
@@ -342,6 +342,16 @@ func RarVersion() string {
|
|
|
return line
|
|
|
}
|
|
|
|
|
|
+/*
|
|
|
+Tarball /home/thor/.cache/rar-upgrade/rarlinux-x64-720.tar.gz:
|
|
|
+Name: unrar Mode 755
|
|
|
+Wrote 441632 bytes.
|
|
|
+Name: default.sfx Mode 755
|
|
|
+Wrote 248960 bytes.
|
|
|
+Name: rar Mode 755
|
|
|
+Wrote 798760 bytes.
|
|
|
+*/
|
|
|
+
|
|
|
func read_tarball(fp *os.File) {
|
|
|
// https://gauravgahlot.in/extracting-files-gzipped-tar-archive-go/
|
|
|
|
|
|
@@ -371,6 +381,8 @@ func read_tarball(fp *os.File) {
|
|
|
}
|
|
|
|
|
|
if header.Mode == 0755 {
|
|
|
+ // This is an executable, extract it!
|
|
|
+
|
|
|
fmt.Printf("Name: %s Mode %o\n", basefilename, header.Mode)
|
|
|
fpout, err := os.OpenFile(basefilename, os.O_CREATE|os.O_WRONLY, os.FileMode(header.Mode))
|
|
|
if err != nil {
|
|
|
@@ -385,7 +397,9 @@ func read_tarball(fp *os.File) {
|
|
|
fmt.Printf("Wrote %d bytes.\n", size)
|
|
|
}
|
|
|
}
|
|
|
- fmt.Printf("Header: %+v\n", header)
|
|
|
+
|
|
|
+ // Within the header, you have Name, Mode, UID, GID, etc.
|
|
|
+ // fmt.Printf("Header: %+v\n", header)
|
|
|
}
|
|
|
}
|
|
|
}
|