summaryrefslogtreecommitdiff
path: root/scripts/commons.ps1
blob: 29c6cb0d8efb5b9f3d70e54a3ed173f59b43b40f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
[CmdletBinding()]
param (
)

$SCRIPTS_DIR=$PSScriptRoot
$BUILD_DIR=[IO.Path]::GetFullPath([IO.Path]::Combine($SCRIPTS_DIR, '..', 'bin'))
$SOURCE_DIR=[IO.Path]::GetFullPath([IO.Path]::Combine($SCRIPTS_DIR, '..'))
$PROVIDER_NAME_FILE=[IO.Path]::GetFullPath([IO.Path]::Combine($SCRIPTS_DIR, '..', 'PROVIDER_NAME.txt'))
$PROVIDER_VERSION_FILE=[IO.Path]::GetFullPath([IO.Path]::Combine($SCRIPTS_DIR, '..', 'PROVIDER_VERSION.txt'))

if ($PSVersionTable.PSVersion.Major -lt 6) {
    $OS = 'windows'
}
else {
    $OS=$PSVersionTable.OS.Split(' ')[0].ToLower()
}
if ("$OS" -eq 'linux') {
  $match = $(lscpu) | Select-String 'Architecture:\s*(?<PROC>.+)$'
  if ($match) {
    $PROC = switch -Wildcard ($match.Matches[0].Groups['PROC'].Value) {
      'x86_64' {
        'amd64'
      }
      '*arm*' {
        'arm'
      }
      '*aarch64*' {
        'arm'
      }
      default {
        '386'
      }
    }
  }
  if ([string]::IsNullOrWhiteSpace($PROC)) {
    $PROC=if (Get-Content /proc/cpuinfo | Select-String 'model name\s*:\s*ARM' | Select-Object -First 1) { 'arm' }
  }
  if ([string]::IsNullOrWhiteSpace($PROC)) {
    $PROC=if (Get-Content /proc/cpuinfo | Select-String 'flags\s*:\s*.* lm ' | Select-Object -First 1) { 'amd64' } else { '386' }
  }
}
else {
  $PROC="amd64"
}
if ($PROC -like "*arm*") {
    # terraform downloads use "arm" not full arm type
    $PROC = 'arm'
}