mirror of
https://github.com/TheCase/IPMIView.app.git
synced 2025-12-10 17:19:42 +01:00
Download needed files in script.sh; update README.md.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1 +1,2 @@
|
||||
Contents/Resources/IPMIView
|
||||
SM_download/
|
||||
43
README.md
43
README.md
@@ -1,43 +1,54 @@
|
||||
### IPMIView (java) App wrapper for MacOS**
|
||||
# IPMIView (java) App wrapper for MacOS
|
||||
|
||||
Download the latest IPMIView software from SuperMicro (to your home directories "Downloads" folder, aka `~/Downloads`:
|
||||
## Quick Start
|
||||
|
||||
[https://ftp.supermicro.com/wftp/utility/IPMIView/Linux/](https://ftp.supermicro.com/wftp/utility/IPMIView/Linux/)
|
||||
|
||||
Download the code and execute the script to unarchive the linux package and create the Application Bundle:
|
||||
```bash
|
||||
cd ~
|
||||
git clone https://github.com/TheCase/IPMIView.app
|
||||
cd IPMIView.app
|
||||
sh script.sh
|
||||
bash script.sh
|
||||
```
|
||||
|
||||
You should now have an application icon in your home directory's Applications (aka `~/Applications`) folder.
|
||||
|
||||
#### Using the KVM Console
|
||||
For some versions of macOS, you may also need to add a security exception for `java`; see [Using the KVM Console](#using-the-kvm-console) for details.
|
||||
|
||||
You need to add an `Input Monitoring` exception for `java` in the `Security & Privacy` -\> `Privacy` Tab in `System Preferences`:
|
||||
## Details
|
||||
|
||||
Running the commands in the [Quick Start](#quick-start) section above will automatically:
|
||||
|
||||
1) Clone this repository
|
||||
2) Run the containing `script.sh`
|
||||
1) Download the needed files from SuperMicro's website
|
||||
2) Verify the downloaded files
|
||||
3) Extract and make the needed modifications to run on macOS
|
||||
4) Install the application to `~/Applications/IPMIView.app`
|
||||
|
||||
### Download Information
|
||||
|
||||
The script in this repo downloads files from SuperMicro's website located at: https://www.supermicro.com/wdl/utility/IPMIView/Linux/
|
||||
|
||||
### Using the KVM Console
|
||||
|
||||
You need to add an `Input Monitoring` exception for `java` in the `Security & Privacy -> Privacy` Tab in `System Preferences`:
|
||||
|
||||
- Open `System Preferences`
|
||||
- Click on `Security & Privacy`
|
||||
- Click the `Privacy` button/tab
|
||||
- Scroll down to `Input Monitoring`
|
||||
(you may need to click the lock in the lower left and enter your password to add a new item)
|
||||
- Click the `Privacy` tab
|
||||
- Scroll down to `Input Monitoring` (you may need to click the lock in the lower left and enter your password to add a new item)
|
||||
- Click the plus `+` symbol
|
||||
- In the top of the new window, select MacintoshHD in the pulldown
|
||||
Library -> Java -> JavaVirtualMachines -> jdk\<version\>.jdk -> bin -> Contents -> Home -> bin
|
||||
- In the top of the new window, select `Macintosh HD` in the pulldown `Library -> Java -> JavaVirtualMachines -> jdk<version>.jdk -> bin -> Contents -> Home -> bin`
|
||||
- Double click on `java`
|
||||
- Make sure the box next to `java` is now checked and close the window
|
||||
|
||||
When you attempt to launch the console, you may be presented with a message that says the developer is not verified. DO NOT click "Move to Trash" - this will delete the files necessary to run the graphical console. Once you get this message:
|
||||
When you attempt to launch the console, you may be presented with a message that says the developer is not verified. DO NOT click "Move to Trash" - this will delete the files necessary to run the graphical console. Once you get this message:
|
||||
|
||||
- Open `System Preferences` -> `Security & Privacy` -> `General` Tab and click `Allow Anyway` next to the message about the jnlilib that was blocked.
|
||||
- At this point you can try the `Launch KVM Console` button. You should be presented with another dialog about developer verification. Click the `Open` button.
|
||||
- This will trigger another denial window for the sharedLibs jnlilib. Repeat the approval process for this next jnlilib in the `Security Preference` Pane.
|
||||
- After performing these two approvals, the console should open.
|
||||
|
||||
|
||||
### Troubleshooting
|
||||
## Troubleshooting
|
||||
|
||||
If you have Java issues loading the app, please verify that you can run the app from the command line (and outside the jursdiction of this supplied wrapper).
|
||||
|
||||
|
||||
76
script.sh
76
script.sh
@@ -1,9 +1,75 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
set -
|
||||
|
||||
DOWNLOAD_URL="https://www.supermicro.com/wdl/utility/IPMIView/Linux/"
|
||||
LOCAL_DOWNLOAD_LOCATION="./SM_download"
|
||||
|
||||
if which wget >/dev/null; then
|
||||
echo "Downloading latest version of IPMIView from [${DOWNLOAD_URL}]..."
|
||||
wget \
|
||||
--timestamping \
|
||||
--recursive \
|
||||
--level=1 \
|
||||
-q \
|
||||
--show-progress \
|
||||
--directory-prefix="${LOCAL_DOWNLOAD_LOCATION}/" \
|
||||
--no-parent \
|
||||
--no-directories \
|
||||
--reject index.html,index.html.tmp,robots.txt,robots.txt.tmp \
|
||||
"${DOWNLOAD_URL}"
|
||||
rm "${LOCAL_DOWNLOAD_LOCATION}/"robots.txt*
|
||||
|
||||
# Check MD5
|
||||
EXPECTED_MD5=$(\grep MD5 "${LOCAL_DOWNLOAD_LOCATION}/CheckSum.txt" | cut -d':' -f2 | tr -d "[:space:]" | tr '[:upper:]' '[:lower:]')
|
||||
ACTUAL_MD5=$(md5sum "${LOCAL_DOWNLOAD_LOCATION}"/IPMIView*.tar* | cut -d' ' -f1 | tr -d "[:space:]" | tr '[:upper:]' '[:lower:]')
|
||||
if ! diff <(echo "${EXPECTED_MD5}") <(echo "${ACTUAL_MD5}"); then
|
||||
echo "MD5 is not as expected; download corrupted."
|
||||
echo "Expected: [${EXPECTED_MD5}]"
|
||||
echo "Actual: [${ACTUAL_MD5}]"
|
||||
echo "Exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check SHA-256
|
||||
EXPECTED_SHA256=$(\grep MD5 "${LOCAL_DOWNLOAD_LOCATION}/CheckSum.txt" | cut -d':' -f2 | tr -d "[:space:]" | tr '[:upper:]' '[:lower:]')
|
||||
ACTUAL_SHA256=$(md5sum "${LOCAL_DOWNLOAD_LOCATION}"/IPMIView*.tar* | cut -d' ' -f1 | tr -d "[:space:]" | tr '[:upper:]' '[:lower:]')
|
||||
if ! diff <(echo "${EXPECTED_SHA256}") <(echo "${ACTUAL_SHA256}"); then
|
||||
echo "SHA-256 is not as expected; download corrupted."
|
||||
echo "Expected: [${EXPECTED_SHA256}]"
|
||||
echo "Actual: [${ACTUAL_SHA256}]"
|
||||
echo "Exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
else
|
||||
echo "WARNING: 'wget' CLI not found."
|
||||
echo
|
||||
echo "Please visit ${DOWNLOAD_URL} to download the latest version of IPMIView and copy the archive into $(pwd)/${LOCAL_DOWNLOAD_LOCATION}/"
|
||||
echo
|
||||
# shellcheck disable=SC2034,SC2162
|
||||
echo "Press [Enter] to continue" && read answer
|
||||
fi
|
||||
|
||||
echo "Extracting contents of downloaded IPMIView archive..."
|
||||
if [[ -d Contents/ ]]; then
|
||||
rm -rf Contents/
|
||||
fi
|
||||
mkdir -p Contents/Resources/IPMIView/Contents/Home/bin
|
||||
tar -zxvf ~/Downloads/IPMIView*.tar.gz --strip=1 -C ./Contents/Resources/IPMIView/. ||
|
||||
tar -xvf ~/Downloads/IPMIView*.tar --strip=1 -C ./Contents/Resources/IPMIView/. ||
|
||||
tar -zxf "${LOCAL_DOWNLOAD_LOCATION}"/IPMIView*.tar* --strip=1 -C ./Contents/Resources/IPMIView/. ||
|
||||
{ echo "Something went wrong, check download of IPMIView archive" && exit 1; }
|
||||
|
||||
echo "Linking 'java' and 'jre'..."
|
||||
ln -s /usr/bin/java Contents/Resources/IPMIView/Contents/Home/bin/java
|
||||
cd ..
|
||||
rsync -arv --exclude=.git --exclude=Contents/Resources/IPMIView/jre IPMIView.app ~/Applications
|
||||
rm -rf Contents/Resources/IPMIView/jre/*
|
||||
pushd Contents/Resources/IPMIView/jre/ >/dev/null &&
|
||||
ln -s ../Contents . &&
|
||||
popd >/dev/null || exit
|
||||
|
||||
echo "Copying IPMIView.app over to ~/Applications directory..."
|
||||
pushd .. >/dev/null &&
|
||||
rsync -ar --exclude=.git --exclude=Contents/Resources/IPMIView/jre IPMIView.app ~/Applications &&
|
||||
popd >/dev/null || exit
|
||||
|
||||
echo "Completed."
|
||||
echo
|
||||
echo "You can now open ~/Applications/IPMIView.app"
|
||||
|
||||
Reference in New Issue
Block a user