updated APPINDEX
This commit is contained in:
parent
3545a5f73b
commit
2bb34d2f5c
3 changed files with 214 additions and 111 deletions
124
main.go
124
main.go
|
@ -39,6 +39,7 @@ var (
|
|||
url = "https://spitfirebrowser.xyz/"
|
||||
licence = "AGPL-3.0"
|
||||
name = "Spitfire"
|
||||
packageName = "spitfire-browser"
|
||||
maintainer = "Internet Addict"
|
||||
initialDir string
|
||||
)
|
||||
|
@ -260,15 +261,20 @@ func PackageAndUploadProcess() {
|
|||
log.Fatalf("Error: no valid build or upload path provided.")
|
||||
}
|
||||
|
||||
// Calculate and display uncompressed size
|
||||
// Calculate & display uncompressed size
|
||||
uncompressedSize, err := spitfire.GetDirectorySize(pathToUse)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to calculate uncompressed size: %v", err)
|
||||
}
|
||||
fmt.Printf("Uncompressed directory size: %s\n", spitfire.BytesToHumanReadable(uncompressedSize))
|
||||
|
||||
// Compress the build directory
|
||||
outputCompressedFile := filepath.Join(".", fmt.Sprintf("%s-%s-%s-%s.tar.gz", component, arch, release, platform))
|
||||
// Create the tar.gz name, e.g. "browser-amd64-nightly-linux.tar.gz"
|
||||
outputCompressedFile := filepath.Join(".", fmt.Sprintf(
|
||||
"%s-%s-%s-%s.tar.gz",
|
||||
component, arch, release, platform,
|
||||
))
|
||||
|
||||
// Compress if requested
|
||||
if compress {
|
||||
err := spitfire.CompressDirectory(pathToUse, outputCompressedFile)
|
||||
if err != nil {
|
||||
|
@ -277,61 +283,85 @@ func PackageAndUploadProcess() {
|
|||
fmt.Printf("Build directory compressed to: %s\n", outputCompressedFile)
|
||||
}
|
||||
|
||||
// Calculate and display compressed size
|
||||
// Compressed size
|
||||
compressedSize, err := spitfire.GetFileSize(outputCompressedFile)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to get compressed file size: %v", err)
|
||||
}
|
||||
fmt.Printf("Compressed file size: %s\n", spitfire.BytesToHumanReadable(compressedSize))
|
||||
|
||||
// Calculate and display compression efficiency
|
||||
// Show compression ratio & efficiency
|
||||
compressionRatio, efficiency := spitfire.CalculateCompressionEfficiency(uncompressedSize, compressedSize)
|
||||
fmt.Printf("Compression ratio: %.2f:1\n", compressionRatio)
|
||||
fmt.Printf("Compression efficiency: %.2f%%\n", efficiency)
|
||||
|
||||
// Handle uploading
|
||||
if upload {
|
||||
config, err := spitfire.LoadConfig()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to load SourceForge config: %v", err)
|
||||
}
|
||||
|
||||
if _, err := os.Stat(outputCompressedFile); err == nil {
|
||||
err = spitfire.Upload(config, outputCompressedFile, "/home/frs/project/spitfire-browser/"+component+"/"+arch+"/"+release+"/"+version+"/")
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to upload compressed file: %v", err)
|
||||
}
|
||||
fmt.Println("Compressed file uploaded successfully.")
|
||||
} else {
|
||||
log.Fatalf("No compressed file found to upload.")
|
||||
}
|
||||
|
||||
err = spitfire.DownloadAPPINDEX(config, "/home/frs/project/spitfire-browser/")
|
||||
if err != nil {
|
||||
fmt.Println("Failed to download APPINDEX. A new APPINDEX will be created and uploaded.")
|
||||
}
|
||||
|
||||
err = spitfire.PackageAPPINDEX(
|
||||
name, release, version, arch,
|
||||
fmt.Sprintf("%d", compressedSize),
|
||||
fmt.Sprintf("%d", uncompressedSize),
|
||||
"Spitfire build", url, licence, component, maintainer, "", platform,
|
||||
)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to update APPINDEX: %v", err)
|
||||
}
|
||||
fmt.Println("APPINDEX updated successfully.")
|
||||
|
||||
if err := spitfire.CleanAppIndex(); err != nil {
|
||||
log.Fatalf("Failed to clean APPINDEX: %v", err)
|
||||
}
|
||||
|
||||
err = spitfire.UploadAPPINDEX(config, "/home/frs/project/spitfire-browser/")
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to upload updated APPINDEX: %v", err)
|
||||
}
|
||||
fmt.Println("APPINDEX uploaded successfully.")
|
||||
// If not uploading, we're done
|
||||
if !upload {
|
||||
return
|
||||
}
|
||||
|
||||
// Load SourceForge config
|
||||
config, err := spitfire.LoadConfig()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to load SourceForge config: %v", err)
|
||||
}
|
||||
|
||||
// Check tarball existence
|
||||
if _, err := os.Stat(outputCompressedFile); err != nil {
|
||||
log.Fatalf("No compressed file found to upload: %v", err)
|
||||
}
|
||||
|
||||
// The subdirectory path in the SF project
|
||||
// e.g. "browser/amd64/nightly/2024.12.23"
|
||||
uploadDir := fmt.Sprintf("%s/%s/%s/%s", component, arch, release, version)
|
||||
|
||||
// 1) Upload the file to SourceForge once
|
||||
err = spitfire.Upload(config, outputCompressedFile,
|
||||
"/home/frs/project/spitfire-browser/"+uploadDir+"/")
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to upload compressed file: %v", err)
|
||||
}
|
||||
fmt.Println("Compressed file uploaded successfully.")
|
||||
|
||||
// 2) Download existing APPINDEX or create new
|
||||
err = spitfire.DownloadAPPINDEX(config, "/home/frs/project/spitfire-browser/")
|
||||
if err != nil {
|
||||
fmt.Println("Failed to download APPINDEX. A new one will be created and uploaded.")
|
||||
}
|
||||
|
||||
// 3) Update the APPINDEX
|
||||
err = spitfire.PackageAPPINDEX(
|
||||
packageName, // e.g. "spitfire-browser"
|
||||
release, // e.g. "nightly"
|
||||
version, // e.g. "2024.12.23"
|
||||
arch,
|
||||
fmt.Sprintf("%d", compressedSize),
|
||||
fmt.Sprintf("%d", uncompressedSize),
|
||||
name, // e.g. "Spitfire"
|
||||
url,
|
||||
licence,
|
||||
component,
|
||||
maintainer,
|
||||
"", // dependencies
|
||||
platform,
|
||||
uploadDir,
|
||||
)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to update APPINDEX: %v", err)
|
||||
}
|
||||
fmt.Println("APPINDEX updated successfully.")
|
||||
|
||||
// 4) Clean
|
||||
if err := spitfire.CleanAppIndex(); err != nil {
|
||||
log.Fatalf("Failed to clean APPINDEX: %v", err)
|
||||
}
|
||||
|
||||
// 5) Upload the updated APPINDEX
|
||||
err = spitfire.UploadAPPINDEX(config, "/home/frs/project/spitfire-browser/")
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to upload updated APPINDEX: %v", err)
|
||||
}
|
||||
fmt.Println("APPINDEX uploaded successfully.")
|
||||
}
|
||||
|
||||
// restoreWorkingDirectory restores the initial working directory after any operation that might change it.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue