Chocolatey Fest - Chocolatey's inaugural conference on Windows Automation (WinOps) is coming - Learn more!

LibreOffice Help Pack

5.2.0

Package test results have failed.

This package was approved as a trusted package on 8/3/2016.

This package installs the help pack for LibreOffice, the free and open source office suite.

It installs the LibreOffice Help Pack in the first language which matches this list:

  1. Install arguments override parameter if present, e.g. choco install libreoffice-help -installArgs l=es
    To get a list of all available locales have a look at this folder: http://download.documentfoundation.org/libreoffice/stable/5.2.0/win/x86/
  2. If libreoffice-help is already installed: the same language as the already installed libreoffice-help. If more than one LibreOffice Help Packs are already installed, this package updates all of them.
  3. The Windows language of the current user account.
  4. If libreoffice-help is not available in one of the previous languages, it defaults to “en-US”.
    It is also possible to install multiple Help Packs. To achieve that, install them like this: choco install libreoffice-help -force -installArgs l=<languageCode>

To install LibreOffice Help Pack, run the following command from the command line or from PowerShell:

C:\> choco install libreoffice-help

To upgrade LibreOffice Help Pack, run the following command from the command line or from PowerShell:

C:\> choco upgrade libreoffice-help

Files

Hide
  • tools\chocolateyInstall.ps1 Show
    $scriptDir = $(Split-Path -parent $MyInvocation.MyCommand.Definition)
    $matchLanguagePath = Join-Path $scriptDir 'matchLanguage.ps1'
    $loHelpIsAlreadyInstalled = Join-Path $scriptDir 'loHelpIsAlreadyInstalled.ps1'
    
    Import-Module $matchLanguagePath
    Import-Module $loHelpIsAlreadyInstalled
    
    $packageName = 'libreoffice-help'
    $fileType = 'msi'
    $version = '5.2.0'
    $silentArgs = '/passive /norestart'
    
    function getInstallLanguageOverride($installArguments) {
      $argumentMap = ConvertFrom-StringData $installArguments
      $langFromInstallArgs = $argumentMap.Item('l')
      return $langFromInstallArgs
    }
    
    function getLangOfExistentInstall() {
      $majorVersion = $version -replace '(^\d).+', '$1'
      $helpInstallPath32 = "$env:ProgramFiles\LibreOffice $majorVersion\help"
      $helpInstallPath64 = "${env:ProgramFiles(x86)}\LibreOffice $majorVersion\help"
    
      if (Test-Path $helpInstallPath32) {
        return (Get-ChildItem $helpInstallPath32 | ?{ $_.PSIsContainer }).Name
      }
    
      if (Test-Path $helpInstallPath64) {
        return (Get-ChildItem $helpInstallPath64 | ?{ $_.PSIsContainer }).Name
      }
    
      return $null
    }
    
    # Language detection
    $urlDownloadLinks = "http://download.documentfoundation.org/libreoffice/stable/$version/win/x86/"
    $htmlDownloadLinks = "$env:TEMP\libreoffice-help-download-links.html"
    
    Get-ChocolateyWebFile 'libreoffice-help-download-links' $htmlDownloadLinks $urlDownloadLinks
    
    $htmlLinksContent = Get-Content $htmlDownloadLinks
    Remove-Item $htmlDownloadLinks
    
    $regex = '(?<=helppack_)[\-a-zA-Z]{2,}(?=\.msi">)'
    
    $matchObject = [regex]::Matches($htmlLinksContent, $regex)
    
    # Language matching with matchLanguage function
    $availableLangs = @()
    
    foreach ($singleMatch in $matchObject) {
      $availableLangs += $singleMatch.Value
    }
    
    $installOverride = getInstallLanguageOverride $installArguments
    $ofExistentInstall = getLangOfExistentInstall
    $fallback = 'en-US'
    
    $language = matchLanguage $availableLangs $installOverride $ofExistentInstall $fallback
    
    # if multiple language packs in different are already install,
    # update all of them, otherwise update/install only the matched language
    if (($ofExistentInstall -is [System.Array]) -and ($installOverride -eq $null)) {
      foreach ($existentLang in $ofExistentInstall) {
        $url = "http://download.documentfoundation.org/libreoffice/stable/${version}/win/x86/LibreOffice_${version}_Win_x86_helppack_${existentLang}.msi"
    
        # If LibreOffice Help Pack with the same version as the package version is not already installed,
        # download and install the Help Pack of the existent language
        if (-not(loHelpIsAlreadyInstalled 'LibreOffice' $version $existentLang)) {
          Install-ChocolateyPackage "$packageName $existentLang" $fileType $silentArgs $url
        } else {
          Write-Output "LibreOffice Help Pack $version ($existentLang) is already installed."
        }
      }
    } else {
      # Download of libreoffice-help with the right version and language
      $url = "http://download.documentfoundation.org/libreoffice/stable/${version}/win/x86/LibreOffice_${version}_Win_x86_helppack_${language}.msi"
    
      # If LibreOffice Help Pack with the same version as the package version is not already installed,
      # download and install the Help Pack of the matched
      if (-not(loHelpIsAlreadyInstalled 'LibreOffice' $version $language)) {
        Install-ChocolateyPackage $packageName $fileType $silentArgs $url
      } else {
        Write-Output "LibreOffice Help Pack $version ($language) is already installed."
      }
    }
    
  • tools\loHelpIsAlreadyInstalled.ps1 Show
    function loHelpIsAlreadyInstalled {
      param([string]$keyName, [string]$version, [string]$language)
    
      $registryDirsArray = @('HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall', 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall')
    
      foreach ($registryDir in $registryDirsArray) {
    
        if (Test-Path $registryDir) {
          Get-ChildItem -Force -Path $registryDir | foreach {
            $currentKey = (Get-ItemProperty -Path $_.PsPath)
            if ($currentKey -match $keyName -and $currentKey -match $version) {
              if ($currentKey.Comments -match "LibreOffice [\d\.]+ Help Pack \($language\)") {
                return $currentKey
              }
            }
          }
        }
      }
    
      return $null
    }
    
  • tools\matchLanguage.ps1 Show
    Function matchLanguage($availableLangs, $installOverride = '', $ofExistentInstall = '', $fallback = 'en-US') {
    
      $detectedLangs = @{
        installOverride = $installOverride
        ofExistentInstall = $ofExistentInstall
        winUiOverride = $null
        listFirst = $null
        fromCulture = $null
        fallback = $fallback
      }
    
      $detectedLangsOrder = @('installOverride', 'ofExistentInstall', 'winUiOverride', 'listFirst', 'fromCulture', 'fallback')
    
      # Get get language override for user account if present. Overriding the language is possible from the control panel
      if (Get-Command Get-WinUILanguageOverride -ErrorAction SilentlyContinue) {
        $detectedLangs.winUiOverride = (Get-WinUILanguageOverride).Name
      }
    
      # Get the first language from the user account language list. If the language override is not set, this is the
      # actual language of the current user account
      if (Get-Command Get-WinUserLanguageList -ErrorAction SilentlyContinue) {
        $detectedLangs.listFirst = (Get-WinUserLanguageList)[0].LanguageTag
      }
    
      # The language from Get-Culture is not the actual UI language, only the locale format. I use this because on Windows 7
      # there seems no other possibility to get the system or user UI language.
      $detectedLangs.fromCulture = (Get-Culture).Name
    
      # Loop over detected languages and for each detected language, loop over the available language
      # and return the first matched language
      foreach ($key in $detectedLangsOrder) {
    
        $langTwoLetter = $detectedLangs[$key] -replace "-[A-Z]+", ''
    
        foreach ($availableLang in $availableLangs) {
    
          if ($detectedLangs[$key] -contains $availableLang) {
            return $availableLang
          }
    
          if ($langTwoLetter -contains $availableLang) {
            return $availableLang
          }
        }
      }
    }
    

Virus Scan Results

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Dependencies

This package has no dependencies.

Package Maintainer(s)

Software Author(s)

  • LibreOffice community

Tags

Version History

Version Downloads Last updated Status
LibreOffice Help Pack 5.1.4 500 Thursday, June 23, 2016 approved
LibreOffice Help Pack 5.1.3 157 Thursday, May 12, 2016 approved
Show More

Discussion for the LibreOffice Help Pack Package

Ground rules:

  • This discussion is only about LibreOffice Help Pack and the LibreOffice Help Pack package. If you have feedback for Chocolatey, please contact the google group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or LibreOffice Help Pack, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.

comments powered by Disqus
Chocolatey.org uses cookies to enhance the user experience of the site.
Ok