import qbs import qbs.Process import qbs.Environment import qbs.Utilities import qbs.FileInfo Product { name: "sentryuploader" type: ["om_sentry_upload"] builtByDefault: false Depends { productTypes: ["om_app"] } Rule { alwaysRun: true multiplex: true explicitlyDependsOnFromDependencies: ["om_sentry"] outputFileTags: "om_sentry_upload" prepare: { var cmds = [] product.dependencies.forEach(function(dep) { var cmdQt = new JavaScriptCommand() if (!dep.type || !dep.type.contains("om_app") || !dep.type.contains("om_sentry")) return cmdQt.description = dep.targetName + ": Uploading debuginfo" cmdQt.dir = dep.buildDirectory cmdQt.projectName = dep.moduleProperty("sentry","projectName") if (cmdQt.projectName === undefined) return cmdQt.sourceCode = function() { var uplaodProcess = new Process() var sentryCli = FileInfo.joinPaths(Environment.getEnv("SENTRY_PATH"), "sentry-cli") var sentryToken = Environment.getEnv("SENTRY_AUTH_TOKEN") if (!sentryToken || sentryToken.length === 0) { throw "SENTRY_AUTH_TOKEN is not defined" } var params = ["--auth-token", sentryToken, "upload-dif", "--org", "open-media", "--project", projectName, dir] console.info("Executing: " + sentryCli + " " + params.join(" ")) uplaodProcess.exec(sentryCli, params, true) console.info(uplaodProcess.readStdOut()) } cmds.push(cmdQt) }) return cmds } } }