VolantisDev / Launchpad

Step up your non-Steam game! Generate Steam-compatible .exe files to effortlessly launch any game through Steam with overlay support.
https://launchpad.games
MIT License
85 stars 3 forks source link

Make sure that the zip file was successfully created #295

Closed github-actions[bot] closed 2 years ago

github-actions[bot] commented 3 years ago

Make sure that the zip file was successfully created

https://github.com/VolantisDev/Launchpad/blob/8843816034f5e1bff60946ac98fe0e643c9d5214/Lib/LaunchpadBuilder/AppBuilder/AhkBinsBuilder.ahk#L37


class AhkBinsBuilder extends AppBuilderBase {
    name := "AHK Bins"

    Build(version) {
        buildFile := this.app.appDir . "\Resources\Dependencies\AhkBins.zip"

        this.Backup(buildFile, true)
        success := this.Generate(buildFile)
        this.Cleanup(buildFile)

        return success
    }

    Backup(buildFile, deleteBuildFile := false) {
        bakFile := buildFile . ".bak"

        if (FileExist(buildFile)) {
            if (deleteBuildFile) {
                FileMove(buildFile, bakFile, true)
            } else {
                FileCopy(buildFile, bakFile, true)
            }
        }
    }

    Generate(buildFile) {
        sourceDir := this.app.appDir . "\Vendor\AutoHotKey\Compiler"
        files := ["Ahk2Exe.exe", "mpress.exe"]

        if (FileExist(buildFile)) {
            FileDelete(buildFile)
        }

        archive := ZipArchive7z(buildFile, this.app.appDir)
        archive.Compress(sourceDir . "\*.exe", sourceDir)

        ; TODO: Make sure that the zip file was successfully created
        return !!(FileExist(buildFile))
    }

    Cleanup(buildFile) {
        bakFile := buildFile . ".bak"

        if (FileExist(bakFile)) {
            if (FileExist(buildFile)) {
                FileDelete(bakFile)
            } else {
                FileMove(bakFile, buildFile, true)
            }
        }
    }
}

9930740b7ee09150f163039447ab18e0552c81ec