SMU (Stanislav Musil Utility)

Home lab Swiss knife written in GO

Installation via Homebrew

Linux 64bit (AMD+ARM) and MacOS 64bit (ARM only) users can install SMU via Homebrew. [Homebrew] is package manager for MacOS and Linux.

brew install musil/tap/smu


Manual Installation

Linux 64bit

wget https://smu.dc5.eu/dist/smu_latest_linux_amd64.tar.gz
wget https://smu.dc5.eu/dist/smu_latest_linux_amd64.tar.gz.sha256 -O smu_latest_linux_amd64.tar.gz.sha256
    if sha256sum -c smu_latest_linux_amd64.tar.gz.sha256; then
        echo -e "\e[32m SHA256sum OK\e[0m"  # Print "OK" in green color
        tar -xvzf smu_latest_linux_amd64.tar.gz
        rm -f README.md
        rm -f smu_latest_linux_amd64.tar.gz
        sudo /bin/mv -f smu /usr/local/bin/
    else
        echo -e "\e[31m SHA256sum FAIL\e[0m"  # Print "FAIL" in red color
        rm -f smu_latest_linux_amd64.tar.gz
        rm -f smu_latest_linux_amd64.tar.gz.sha256
    fi

Windows 64bit

Invoke-WebRequest -Uri "https://smu.dc5.eu/dist/smu_windows_amd64/smu" -OutFile ".\smu.exe" -UseBasicParsing
Invoke-WebRequest -Uri "https://smu.dc5.eu/dist/smu_windows_amd64/smu.sha256" -OutFile ".\smu.sha256" -UseBasicParsing
$hashFilePath = Join-Path (Split-Path $filePath) "$($filePath | Split-Path -Leaf)sha256"
$filePath = ".\smu.exe"
$expectedHash = (Get-Content $hashFilePath).Substring(0,64)

$actualHash = Get-FileHash -Path $filePath -Algorithm SHA256 | Select-Object -ExpandProperty Hash

if ($actualHash -eq $expectedHash) {
    Write-Host "Hashes match. File is valid."
} else {
    Write-Host "Hashes do not match. File may be corrupt."
}

MacOS ARM 64bit

Invoke-WebRequest -Uri "https://smu.dc5.eu/dist/smu_darwin_arm64/smu" -OutFile ".\smu.exe" -UseBasicParsing
Invoke-WebRequest -Uri "https://smu.dc5.eu/dist/smu_darwin_arm64/smu.sha256" -OutFile ".\smu.sha256" -UseBasicParsing
$hashFilePath = Join-Path (Split-Path $filePath) "$($filePath | Split-Path -Leaf)sha256"
$filePath = ".\smu.exe"
$expectedHash = (Get-Content $hashFilePath).Substring(0,64)

$actualHash = Get-FileHash -Path $filePath -Algorithm SHA256 | Select-Object -ExpandProperty Hash

if ($actualHash -eq $expectedHash) {
    Write-Host "Hashes match. File is valid."
} else {
    Write-Host "Hashes do not match. File may be corrupt."
}

Index of Files