#!/bin/bash # # Copyright (c) 2024 Scott Duensing, scott@kangaroopunch.com # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. # # # This script is intended for use on Linux and MacOS. # echo echo " _____ ____ ____ __ ____" echo "| ___|___ \\| ___| / /_ | _ \\ _____ __" echo "| |_ __) |___ \\| '_ \\ | | | |/ _ \\ \\ / /" echo "| _| / __/ ___) | (_) | | |_| | __/\\ V /" echo "|_| |_____|____/ \\___/ |____/ \\___| \\_/" echo MACTEST=$(uname -a | grep Darwin) if [[ $? == 0 ]]; then MACTEST=$(uname -a | grep arm64) if [[ $? == 0 ]]; then MAC=1 fi fi if [[ -z ${MAC} ]]; then REMOTE1=https://github.com/llvm-mos/llvm-mos-sdk/releases/latest/download/llvm-mos-linux.tar.xz LOCAL1=llvm-mos-linux.tar.xz else REMOTE1=https://github.com/llvm-mos/llvm-mos-sdk/releases/latest/download/llvm-mos-macos.tar.xz LOCAL1=llvm-mos-macos.tar.xz fi REMOTE2=https://kangaroopunch.com/files/serve/shared/f256dev.tar.xz LOCAL2=llvm-mos-f256.tar.xz REMOTE3=https://github.com/pweingar/FoenixMgr/archive/refs/heads/master.zip LOCAL3=master.zip PYTHON=$(which python) if [[ $? == 1 ]]; then PYTHON=$(which python3) if [[ $? == 1 ]]; then echo "Unable to find Python 3.x. Exiting." exit 1 fi fi PYVER=$(${PYTHON} --version | grep "Python 3") if [[ $? == 1 ]]; then echo "Unable to find Python 3.x. Exiting." exit 1 fi PIP=$(which pip) if [[ $? == 1 ]]; then PIP=$(which pip3) if [[ $? == 1 ]]; then echo "Unable to find pip. Exiting." exit 1 fi fi CURL=$(which curl) if [[ $? == 0 ]]; then ${CURL} -L ${REMOTE1} > ${LOCAL1} ${CURL} -L ${REMOTE2} > ${LOCAL2} ${CURL} -L ${REMOTE3} > ${LOCAL3} else WGET=$(which wget) if [[ $? == 0 ]]; then wget ${REMOTE1} wget ${REMOTE2} wget ${REMOTE3} else echo "Unable to locate curl or wget. Exiting." exit 1 fi fi if [[ ! -z ${MAC} ]]; then xattr -d com.apple.quarantine ${LOCAL1} xattr -d com.apple.quarantine ${LOCAL2} xattr -d com.apple.quarantine ${LOCAL3} fi if [[ -d f256dev ]]; then rm -rf f256dev fi mkdir -p f256dev pushd f256dev tar xf ../${LOCAL1} unzip -o ../${LOCAL3} popd tar xf ${LOCAL2} rm ${LOCAL1} rm ${LOCAL2} rm ${LOCAL3} pushd f256dev rm -f overlay.windows if [[ -z ${MAC} ]]; then rm -f overlay.macos mv overlay.linux overlay else rm -f overlay.linux mv overlay.macos overlay fi rm -f *.bat pushd llvm-mos/bin ln -s mos-clang++ mos-f256-clang++ ln -s mos-clang-cpp mos-f256-clang-cpp ln -s mos-clang mos-f256-clang popd mv FoenixMgr-master FoenixMgr pushd FoenixMgr ${PIP} install -r requirements.txt popd popd if [[ ! -e f256build.sh ]]; then ln -s f256dev/f256build.sh . fi if [[ ! -e f256run.sh ]]; then ln -s f256dev/f256run.sh . fi if [[ ! -f foenixmgr.ini ]]; then echo "[DEFAULT]" > foenixmgr.ini echo "port=/dev/ttyUSB0" >> foenixmgr.ini echo "labels=sample.lbl" >> foenixmgr.ini echo "flash_address=380000" >> foenixmgr.ini echo "chunk_size=1024" >> foenixmgr.ini echo "cpu=65c02" >> foenixmgr.ini fi echo echo ----------------------------------------------------------------------------- echo Installation complete! echo echo Please visit https://github.com/pweingar/FoenixMgr to learn how to configure echo FoenixMgr for your machine. Edit the foenixmgr.ini file in this directory. echo ----------------------------------------------------------------------------- echo