Documentation
¶
Overview ¶
Package goversioninfo creates a syso file which contains Microsoft Version Information and an optional icon.
Index ¶
- Constants
- func RunCLI(cfg CLIConfig) error
- type CLIConfig
- type CharsetID
- type FileVersion
- type FixedFileInfo
- type LangID
- type SizedReader
- type StringFileInfo
- type Translation
- type VSFixedFileInfo
- type VSString
- type VSStringFileInfo
- type VSStringTable
- type VSVar
- type VSVarFileInfo
- type VSVersionInfo
- type VarFileInfo
- type VersionInfo
- func (v *VersionInfo) Build()
- func (vi *VersionInfo) ParseJSON(jsonBytes []byte) error
- func (vi *VersionInfo) Walk()
- func (vi *VersionInfo) WriteGo(filename, packageName string) error
- func (vi *VersionInfo) WriteHex(filename string) error
- func (vi *VersionInfo) WriteSyso(filename string, arch string) error
Examples ¶
Constants ¶
const ( Cs7ASCII = CharsetID(0) // Cs7ASCII: 0 0000 7-bit ASCII CsJIS = CharsetID(932) // CsJIS: 932 03A4 Japan (Shift ? JIS X-0208) CsKSC = CharsetID(949) // CsKSC: 949 03B5 Korea (Shift ? KSC 5601) CsBig5 = CharsetID(950) // CsBig5: 950 03B6 Taiwan (Big5) CsUnicode = CharsetID(1200) // CsUnicode: 1200 04B0 Unicode CsLatin2 = CharsetID(1250) // CsLatin2: 1250 04E2 Latin-2 (Eastern European) CsCyrillic = CharsetID(1251) // CsCyrillic: 1251 04E3 Cyrillic CsMultilingual = CharsetID(1252) // CsMultilingual: 1252 04E4 Multilingual CsGreek = CharsetID(1253) // CsGreek: 1253 04E5 Greek CsTurkish = CharsetID(1254) // CsTurkish: 1254 04E6 Turkish CsHebrew = CharsetID(1255) // CsHebrew: 1255 04E7 Hebrew CsArabic = CharsetID(1256) // CsArabic: 1256 04E8 Arabic )
CharsetID constants
const ( LngArabic = LangID(0x0401) // LngArabic: 0x0401 Arabic LngBulgarian = LangID(0x0402) // LngBulgarian: 0x0402 Bulgarian LngCatalan = LangID(0x0403) // LngCatalan: 0x0403 Catalan LngTraditionalChinese = LangID(0x0404) // LngTraditionalChinese: 0x0404 Traditional Chinese LngCzech = LangID(0x0405) // LngCzech: 0x0405 Czech LngDanish = LangID(0x0406) // LngDanish: 0x0406 Danish LngGerman = LangID(0x0407) // LngGerman: 0x0407 German LngGreek = LangID(0x0408) // LngGreek: 0x0408 Greek LngUSEnglish = LangID(0x0409) // LngUSEnglish: 0x0409 U.S. English LngCastilianSpanish = LangID(0x040A) // LngCastilianSpanish: 0x040A Castilian Spanish LngFinnish = LangID(0x040B) // LngFinnish: 0x040B Finnish LngFrench = LangID(0x040C) // LngFrench: 0x040C French LngHebrew = LangID(0x040D) // LngHebrew: 0x040D Hebrew LngHungarian = LangID(0x040E) // LngHungarian: 0x040E Hungarian LngIcelandic = LangID(0x040F) // LngIcelandic: 0x040F Icelandic LngItalian = LangID(0x0410) // LngItalian: 0x0410 Italian LngJapanese = LangID(0x0411) // LngJapanese: 0x0411 Japanese LngKorean = LangID(0x0412) // LngKorean: 0x0412 Korean LngDutch = LangID(0x0413) // LngDutch: 0x0413 Dutch LngNorwegianBokmal = LangID(0x0414) // LngNorwegianBokmal: 0x0414 Norwegian ? Bokmal LngPolish = LangID(0x0415) // LngPolish: 0x0415 Polish LngPortugueseBrazil = LangID(0x0416) // LngPortugueseBrazil: 0x0416 Portuguese (Brazil) LngRhaetoRomanic = LangID(0x0417) // LngRhaetoRomanic: 0x0417 Rhaeto-Romanic LngRomanian = LangID(0x0418) // LngRomanian: 0x0418 Romanian LngRussian = LangID(0x0419) // LngRussian: 0x0419 Russian LngCroatoSerbianLatin = LangID(0x041A) // LngCroatoSerbianLatin: 0x041A Croato-Serbian (Latin) LngSlovak = LangID(0x041B) // LngSlovak: 0x041B Slovak LngAlbanian = LangID(0x041C) // LngAlbanian: 0x041C Albanian LngSwedish = LangID(0x041D) // LngSwedish: 0x041D Swedish LngThai = LangID(0x041E) // LngThai: 0x041E Thai LngTurkish = LangID(0x041F) // LngTurkish: 0x041F Turkish LngUrdu = LangID(0x0420) // LngUrdu: 0x0420 Urdu LngBahasa = LangID(0x0421) // LngBahasa: 0x0421 Bahasa LngSimplifiedChinese = LangID(0x0804) // LngSimplifiedChinese: 0x0804 Simplified Chinese LngSwissGerman = LangID(0x0807) // LngSwiss German: 0x0807 Swiss German LngUKEnglish = LangID(0x0809) // LngUKEnglish: 0x0809 U.K. English LngSpanishMexico = LangID(0x080A) // LngSpanishMexico: 0x080A Spanish (Mexico) LngBelgianFrench = LangID(0x080C) // LngBelgian French: 0x080C Belgian French LngSwissItalian = LangID(0x0810) // LngSwiss Italian: 0x0810 Swiss Italian LngBelgianDutch = LangID(0x0813) // LngBelgian Dutch: 0x0813 Belgian Dutch LngNorwegianNynorsk = LangID(0x0814) // LngNorwegianNynorsk: 0x0814 Norwegian ? Nynorsk LngPortuguesePortugal = LangID(0x0816) // LngPortuguese (Portugal): 0x0816 Portuguese (Portugal) LngSerboCroatianCyrillic = LangID(0x081A) // LngSerboCroatianCyrillic: 0x081A Serbo-Croatian (Cyrillic) LngCanadianFrench = LangID(0x0C0C) // LngCanadian French: 0x0C0C Canadian French LngSwissFrench = LangID(0x100C) // LngSwiss French: 0x100C Swiss French )
LangID constants
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CLIConfig ¶ added in v1.7.0
type CLIConfig struct {
ConfigFile string
OutputFile string
GoFile string
GoFilePackage string
PlatformSpecific bool
IconPath string
ApplicationIconPath string
ManifestPath string
SkipVersionInfo bool
PropagateVerStrings bool
Comment string
CompanyName string
Description string
FileVersion string
InternalName string
Copyright string
Trademark string
OriginalName string
PrivateBuild string
ProductName string
ProductVersion string
SpecialBuild string
TranslationID int
CharsetID int
Is64Bit bool
IsARM bool
// Version override fields use -1 to mean "don't override."
// Use NewCLIConfig to get these defaults.
VerMajor int
VerMinor int
VerPatch int
VerBuild int
ProductVerMajor int
ProductVerMinor int
ProductVerPatch int
ProductVerBuild int
}
CLIConfig holds all settings for generating a version info resource. Use NewCLIConfig to get a CLIConfig with sensible defaults.
func NewCLIConfig ¶ added in v1.7.0
func NewCLIConfig() CLIConfig
NewCLIConfig returns a CLIConfig with sensible defaults matching the CLI behavior.
type CharsetID ¶
type CharsetID uint16
CharsetID must use be a character-set identifier from: https://msdn.microsoft.com/en-us/library/windows/desktop/aa381058(v=vs.85).aspx#charsetID
func (*CharsetID) UnmarshalJSON ¶
UnmarshalJSON converts the string to a CharsetID
type FileVersion ¶
FileVersion with 3 parts.
func NewFileVersion ¶ added in v1.5.0
func NewFileVersion(version string) (FileVersion, error)
NewFileVersion parses semver version string into a FileVersion object
func (FileVersion) GetVersionString ¶
func (f FileVersion) GetVersionString() string
GetVersionString returns a string representation of the version
func (FileVersion) IsZero ¶ added in v1.7.0
func (f FileVersion) IsZero() bool
IsZero returns true if all version components are zero.
type FixedFileInfo ¶
type FixedFileInfo struct {
FileVersion `json:"FileVersion"`
ProductVersion FileVersion
FileFlagsMask string
FileFlags string
FileOS string
FileType string
FileSubType string
}
FixedFileInfo contains file characteristics - leave most of them at the defaults.
type LangID ¶
type LangID uint16
LangID must use be a character-set identifier from: https://msdn.microsoft.com/en-us/library/windows/desktop/aa381058(v=vs.85).aspx#langID
func (*LangID) UnmarshalJSON ¶
UnmarshalJSON converts the string to a LangID
type SizedReader ¶
SizedReader is a *bytes.Buffer.
type StringFileInfo ¶
type StringFileInfo struct {
Comments string
CompanyName string
FileDescription string
FileVersion string
InternalName string
LegalCopyright string
LegalTrademarks string
OriginalFilename string
PrivateBuild string
ProductName string
ProductVersion string
SpecialBuild string
}
StringFileInfo is what you want to change.
type Translation ¶
Translation with langid and charsetid.
type VSFixedFileInfo ¶
type VSFixedFileInfo struct {
DwSignature uint32
DwStrucVersion uint32
DwFileVersionMS uint32
DwFileVersionLS uint32
DwProductVersionMS uint32
DwProductVersionLS uint32
DwFileFlagsMask uint32
DwFileFlags uint32
DwFileOS uint32
DwFileType uint32
DwFileSubtype uint32
DwFileDateMS uint32
DwFileDateLS uint32
}
VSFixedFileInfo - most of these should be left at the defaults.
type VSString ¶
type VSString struct {
WLength uint16
WValueLength uint16
WType uint16
SzKey []byte
Padding []byte
Value []byte
}
VSString holds the keys and values.
type VSStringFileInfo ¶
type VSStringFileInfo struct {
WLength uint16
WValueLength uint16
WType uint16
SzKey []byte
Padding []byte
Children VSStringTable
}
VSStringFileInfo holds multiple collections of keys and values, only allows for 1 collection in this package.
type VSStringTable ¶
type VSStringTable struct {
WLength uint16
WValueLength uint16
WType uint16
SzKey []byte
Padding []byte
Children []VSString
}
VSStringTable holds a collection of string keys and values.
type VSVar ¶
type VSVar struct {
WLength uint16
WValueLength uint16
WType uint16
SzKey []byte
Padding []byte
Value uint32
}
VSVar holds the translation key.
type VSVarFileInfo ¶
type VSVarFileInfo struct {
WLength uint16
WValueLength uint16
WType uint16
SzKey []byte
Padding []byte
Value VSVar
}
VSVarFileInfo holds the translation collection of 1.
type VSVersionInfo ¶
type VSVersionInfo struct {
WLength uint16
WValueLength uint16
WType uint16
SzKey []byte
Padding1 []byte
Value VSFixedFileInfo
Padding2 []byte
Children VSStringFileInfo
Children2 VSVarFileInfo
}
VSVersionInfo is the top level version container.
type VarFileInfo ¶
type VarFileInfo struct {
Translation `json:"Translation"`
}
VarFileInfo is the translation container.
type VersionInfo ¶
type VersionInfo struct {
FixedFileInfo `json:"FixedFileInfo"`
StringFileInfo `json:"StringFileInfo"`
VarFileInfo `json:"VarFileInfo"`
Timestamp bool
Buffer bytes.Buffer
Structure VSVersionInfo
IconPath string `json:"IconPath"`
ManifestPath string `json:"ManifestPath"`
ApplicationIconPath string `json:"ApplicationIconPath"`
}
VersionInfo data container
func (*VersionInfo) Build ¶
func (v *VersionInfo) Build()
Build fills the structs with data from the config file
func (*VersionInfo) ParseJSON ¶
func (vi *VersionInfo) ParseJSON(jsonBytes []byte) error
ParseJSON parses the given bytes as a VersionInfo JSON.
func (*VersionInfo) Walk ¶
func (vi *VersionInfo) Walk()
Walk writes the data buffer with hexadecimal data from the structs
func (*VersionInfo) WriteGo ¶ added in v1.2.0
func (vi *VersionInfo) WriteGo(filename, packageName string) error
WriteGo creates a Go file that contains the version info so you can access it in the application
func (*VersionInfo) WriteHex ¶
func (vi *VersionInfo) WriteHex(filename string) error
WriteHex creates a hex file for debugging version info
