mirror of
https://onedev.site.tesses.net/crosslang/crosslang-website
synced 2026-02-08 17:15:46 +00:00
134 lines
5.0 KiB
Bash
Executable File
134 lines
5.0 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
OS=`uname -s`
|
|
ARCH=`uname -m`
|
|
|
|
OsLinux() {
|
|
. /etc/os-release
|
|
case $ID in
|
|
"arch" )
|
|
OsArchLinux ;;
|
|
"debian" )
|
|
OsDebianLinux ;;
|
|
"ubuntu" )
|
|
OsUbuntuLinux ;;
|
|
esac
|
|
}
|
|
|
|
CompileFromSourceConfirmed() {
|
|
git clone https://onedev.site.tesses.net/crosslang || exit 1
|
|
cd crosslang
|
|
mkdir -p build
|
|
cd build
|
|
cmake -S .. -B .
|
|
CPUS := $(shell nproc 2>/dev/null || echo 1)
|
|
make -j`$CPUS`
|
|
while true; do
|
|
read -p "Do you want to install it (Y/n)? " yn
|
|
case $yn in
|
|
[Yy]* ) sudo make install; break;;
|
|
[Nn]* ) break;;
|
|
* ) echo "Please answer yes or no.";;
|
|
esac
|
|
done
|
|
while true; do
|
|
read -p "Do you want to delete the source code (Y/n)? " yn
|
|
case $yn in
|
|
[Yy]* ) cd ../..; rm -rf crosslang; break;;
|
|
[Nn]* ) break;;
|
|
* ) echo "Please answer yes or no.";;
|
|
esac
|
|
done
|
|
}
|
|
|
|
CompileFromSource() {
|
|
while true; do
|
|
echo "Required dependencies: cmake and a compiler"
|
|
read -p "Your platform configuration does not have a binary, do you want to compile from source (Y/n)? " yn
|
|
case $yn in
|
|
[Yy]* ) CompileFromSourceConfirmed; break;;
|
|
[Nn]* ) break;;
|
|
* ) echo "Please answer yes or no.";;
|
|
esac
|
|
done
|
|
}
|
|
OldDistroMessage() {
|
|
if [ "$ARCH" = "ppc" ]; then
|
|
if cat /proc/cpuinfo | grep wii > /dev/null; then
|
|
echo "You can upgrade to the Wii Linux Continuation Project"
|
|
echo "Make sure its the arch linux version"
|
|
echo "Here is the link to the page: https://wii-linux.org/downloads"
|
|
echo "Or via another linux machine you can cross compile for powerpc"
|
|
echo "using musl and staticly linking to musl"
|
|
exit 1
|
|
fi
|
|
fi
|
|
echo "You will need to cross compile a static build using musl, sorry"
|
|
exit 1
|
|
}
|
|
|
|
OsArchLinux() {
|
|
if [ "$ARCH" = "x86_64" ] || [ "$ARCH" = "ppc"]; then
|
|
wget -O repository.key https://git.tesseslanguage.com/api/packages/tesses50/arch/repository.key
|
|
sudo pacman-key --add repository.key
|
|
rm repository.key
|
|
printf "[tesses50.git.tesseslanguage.com]\nSigLevel = Optional TrustAll\nServer = https://git.tesseslanguage.com/api/packages/tesses50/arch/core/\$arch\n" | sudo tee -a /etc/pacman.conf
|
|
sudo pacman -Sy crosslang
|
|
else
|
|
CompileFromSource
|
|
fi
|
|
}
|
|
OsDebianLinux() {
|
|
if [ "$VERSION_ID" -lt "12" ]; then
|
|
OldDistroMessage
|
|
elif [ "$VERSION_ID" -lt "13" ]; then
|
|
if [ "$ARCH" = "x86_64" ] || [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "riscv64" ]; then
|
|
sudo curl https://git.tesseslanguage.com/api/packages/tesses50/debian/repository.key -o /etc/apt/keyrings/gitea-tesses50.asc
|
|
echo "deb [signed-by=/etc/apt/keyrings/gitea-tesses50.asc] https://git.tesseslanguage.com/api/packages/tesses50/debian jammy main" | sudo tee -a /etc/apt/sources.list.d/gitea.list
|
|
sudo apt update
|
|
sudo apt install crosslang
|
|
else
|
|
CompileFromSource
|
|
fi
|
|
else
|
|
if [ "$ARCH" = "x86_64" ] || [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "riscv64" ]; then
|
|
sudo curl https://git.tesseslanguage.com/api/packages/tesses50/debian/repository.key -o /etc/apt/keyrings/gitea-tesses50.asc
|
|
echo "deb [signed-by=/etc/apt/keyrings/gitea-tesses50.asc] https://git.tesseslanguage.com/api/packages/tesses50/debian plucky main" | sudo tee -a /etc/apt/sources.list.d/gitea.list
|
|
sudo apt update
|
|
sudo apt install crosslang
|
|
else
|
|
CompileFromSource
|
|
fi
|
|
fi
|
|
}
|
|
OsUbuntuLinux() {
|
|
if [ 1 -eq "$(echo "$VERSION_ID 22.04" | awk '{print ($1 < $2)}')" ]; then
|
|
OldDistroMessage
|
|
elif [ 1 -eq "$(echo "$VERSION_ID 25.04" | awk '{print ($1 < $2)}')" ]; then
|
|
if [ "$ARCH" = "x86_64" ] || [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "riscv64" ]; then
|
|
sudo curl https://git.tesseslanguage.com/api/packages/tesses50/debian/repository.key -o /etc/apt/keyrings/gitea-tesses50.asc
|
|
echo "deb [signed-by=/etc/apt/keyrings/gitea-tesses50.asc] https://git.tesseslanguage.com/api/packages/tesses50/debian jammy main" | sudo tee -a /etc/apt/sources.list.d/gitea.list
|
|
sudo apt update
|
|
sudo apt install crosslang
|
|
else
|
|
CompileFromSource
|
|
fi
|
|
else
|
|
if [ "$ARCH" = "x86_64" ] || [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "riscv64" ]; then
|
|
sudo curl https://git.tesseslanguage.com/api/packages/tesses50/debian/repository.key -o /etc/apt/keyrings/gitea-tesses50.asc
|
|
echo "deb [signed-by=/etc/apt/keyrings/gitea-tesses50.asc] https://git.tesseslanguage.com/api/packages/tesses50/debian plucky main" | sudo tee -a /etc/apt/sources.list.d/gitea.list
|
|
sudo apt update
|
|
sudo apt install crosslang
|
|
else
|
|
CompileFromSource
|
|
fi
|
|
fi
|
|
}
|
|
|
|
|
|
case $OS in
|
|
"Linux")
|
|
OsLinux ;;
|
|
*)
|
|
CompileFromSource ;;
|
|
esac
|