mozillainstallhash

package module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 24, 2023 License: MIT Imports: 4 Imported by: 1

README

mozillainstallhash

Gets the hash used to differentiate between installs of Mozilla software in installs.ini and profiles.ini.

Example
  1. Create a new local Go module:

    1. Create a new directory e.g. $GOPATH/src/get_mozilla_install_hash
    2. Change into the newly created directory
    3. Run go mod init get_mozilla_install_hash
  2. Create a new file get_mozilla_install_hash.go:

    package main
    
    import (
    	"fmt"
    	"log"
    	"os"
    	"strings"
    
    	"github.com/bradenhilton/mozillainstallhash"
    )
    
    const usage = `
    get_mozilla_install_hash
    	Get the hash used to differentiate between installs of Mozilla software.
    
    Usage:
    	get_mozilla_install_hash <path> [<path> ...]
    
    Where <path> is a string describing the parent directory of the executable,
    e.g. "C:\Program Files\Mozilla Firefox", with platform specific path separators
    ("\" on Windows and "/" on Unix-like systems)
    
    Example:
    	get_mozilla_install_hash "C:\Program Files\Mozilla Firefox"
    	308046B0AF4A39CB
    
    	get_mozilla_install_hash "C:/Program Files/Mozilla Firefox"
    	9D561FCD08DC6D55
    
    	get_mozilla_install_hash "/usr/lib/firefox"
    	4F96D1932A9F858E`
    
    func main() {
    	if len(os.Args) == 1 {
    		log.Println(fmt.Errorf("error: no path specified"))
    		fmt.Println(usage)
    		os.Exit(1)
    	}
    
    	paths := os.Args[1:]
    	for _, path := range paths {
    		path = strings.TrimSuffix(path, "/")
    		path = strings.TrimSuffix(path, "\\")
    
    		hash, err := mozillainstallhash.MozillaInstallHash(path)
    		if err != nil {
    			log.Println(err)
    			continue
    		}
    
    		fmt.Println(hash)
    	}
    }
    
  3. Run go get github.com/bradenhilton/mozillainstallhash

  4. Run go run get_mozilla_install_hash.go <your_path_here>

License

MIT

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MozillaInstallHash

func MozillaInstallHash(installPath string) (string, error)

MozillaInstallHash returns the Mozilla install hash for the path given in installPath.

installPath should be the path to the parent directory of the executable.

A UTF-16 encoding of installPath is transformed to a byte array and passed to CityHash64 (version 1).

Other than the UTF-16 encoding and byte array conversion, installPath is hashed as is, so must contain the correct path separators for the intended operating system, with any trailing path separator removed.

It returns a string of the hash in uppercase hexadecimal format.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL