pkg/tc-properties/tcPropertyUtil.go (99 lines of code) (raw):
package tc_properties
import (
"strings"
)
// noinspection SpellCheckingInspection
var excludedTcProperties = map[string]bool{
"vcsroot.usernameStyle": true,
"vcsroot.teamcitySshKey": true,
"vcsroot.ijplatform_IntelliJMonorepo.usernameStyle": true,
"vcsroot.ijplatform_IntelliJMonorepo.teamcitySshKey": true,
"vcsroot.ijplatform_IntelliJMonorepo.authMethod": true,
"env.ARTIFACTORY_API_KEY": true,
"env.APPL_PASSWORD": true,
"jetbrains.sign.service.secret": true,
"Python": true,
"AnyPython": true,
"artifacts.path": true,
"build.xml.path": true,
"env.ARTIFACTORY_URL": true,
"teamcity.build.triggeredBy": true,
"vcsroot.agentCleanFilesPolicy": true,
"vcs.trigger.rules": true,
"vcs.trigger.quiet.period": true,
"runas_ready": true,
"env.APPL_USER": true,
"env.Apple_PubSub_Socket_Render": true,
"env.OLDPWD": true,
"env.SSH_AUTH_SOCK": true,
"env.TEAMCITY_VERSION": true,
"intellij.perf_stat.publishing.influxDB": true,
"intellij.perf_stat.profile.yourkit": true,
"system.teamcity.version": true,
"vcsroot.useAlternates": true,
"vcsroot.ignoreKnownHosts": true,
"vcsroot.authMethod": true,
"vcsroot.agentCleanPolicy": true,
"teamcity.internal.git.sshSendEnvRequestToken": true,
"teamcity.ideaRunner.additional.lib.path": true,
"teamcity.cleaners.configurable.directories": true,
"teamcity.vault.supported": true,
"teamcity.ui.settings.readOnly": true,
"teamcity.remote-debug.ant.supported": true,
"env.BUILD_VCS_NUMBER": true,
"env.BUILD_VCS_NUMBER_ijplatform_master_IntelliJMonorepo": true,
"env.DISTRIB_DESCRIPTION": true,
"build.counter": true,
"env.BUILD_NUMBER": true,
"tools.xcode.arch.macosx.Standard32bit": true,
"tools.xcode.arch.macosx.Standard64bit": true,
"teamcity.agent.ownPort": true,
}
func ReadProperties(data []byte) ([]byte, error) {
p, err := LoadBytes(data, IsExcludedProperty)
if err != nil {
return nil, err
}
json := PropertiesToJson(p)
return []byte(json), nil
}
// IsExcludedProperty obtained by cat '/Volumes/data/Downloads/build.finish.properties' | python -m json.tool > f.json
func IsExcludedProperty(key string) bool {
if excludedTcProperties[key] ||
strings.HasPrefix(key, "DotNetCredentialProvider") ||
strings.HasPrefix(key, "dep.") ||
strings.HasPrefix(key, "Python.") ||
strings.HasPrefix(key, "teamcity.nuget.") ||
strings.HasPrefix(key, "teamcity.torrent.") ||
strings.HasPrefix(key, "secure:teamcity.") ||
strings.HasPrefix(key, "intellij.plugins.pluginrobot.") ||
strings.HasPrefix(key, "intellij.influx.startup.") ||
strings.HasPrefix(key, "env.JAVA_MAIN_CLASS_") ||
strings.HasPrefix(key, "tools.xcode.arch.appletvos.") ||
strings.HasPrefix(key, "tools.xcode.arch.iphoneos.") ||
strings.HasPrefix(key, "tools.xcode.arch.watchos.") ||
strings.HasPrefix(key, "teamcity.dotnet.msbuild.") ||
strings.HasPrefix(key, "system.teamcity.dotnet.") ||
strings.HasPrefix(key, "system.intellij.build.toolbox.litegen.") ||
strings.HasPrefix(key, "npmjs.com.auth.") ||
strings.HasPrefix(key, "npm.auth.") {
return true
}
if strings.HasSuffix(key, ".user.password") ||
strings.HasSuffix(key, ".auth.password") ||
strings.HasSuffix(key, ".user.password") ||
strings.HasSuffix(key, ".user.name") {
return true
}
// dep.ijplatform_master_Idea_Installers.
if strings.Contains(key, ".teamcity.nuget.") ||
strings.Contains(key, ".secure:teamcity.") ||
strings.Contains(key, ".system.pin.builds.user.password") ||
strings.Contains(key, ".system.pin.builds.user.name") ||
strings.Contains(key, ".intellij.plugins.pluginrobot.") ||
strings.Contains(key, ".intellij.influx.startup.") ||
strings.Contains(key, ".env.JAVA_MAIN_CLASS_") ||
strings.Contains(key, ".DotNetFramework1.") ||
strings.Contains(key, ".npmjs.com.auth.") ||
strings.Contains(key, ".npm.auth.") {
return true
}
return false
}