mirror of
https://onedev.site.tesses.net/crosslang/crosslang-website
synced 2026-02-08 09:05:47 +00:00
Add install script
This commit is contained in:
@@ -4,6 +4,11 @@ type = "chapter"
|
|||||||
weight = 1
|
weight = 1
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
If you use Linux, MacOS or FreeBSD you can also use this command to install
|
||||||
|
```bash
|
||||||
|
curl -o crosslang-install.sh https://crosslang.tesseslanguage.com/crosslang-install.sh && sh crosslang-install.sh; rm crosslang-install.sh
|
||||||
|
```
|
||||||
|
|
||||||
- [Linux](linux)
|
- [Linux](linux)
|
||||||
- [Windows](windows.md)
|
- [Windows](windows.md)
|
||||||
- [Shell Binary](https://downloads.tesses.net/ShellPackage.crvm)
|
- [Shell Binary](https://downloads.tesses.net/ShellPackage.crvm)
|
||||||
133
static/crosslang-install.sh
Executable file
133
static/crosslang-install.sh
Executable file
@@ -0,0 +1,133 @@
|
|||||||
|
#!/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
|
||||||
Reference in New Issue
Block a user