Merge pull request #335 from CooperGerman/master
Create install_arch.sh
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -203,3 +203,4 @@ $RECYCLE.BIN/
|
|||||||
|
|
||||||
data/
|
data/
|
||||||
.pdm-python
|
.pdm-python
|
||||||
|
.history
|
||||||
@@ -56,7 +56,7 @@ mkdir -p ./Spoolman && \
|
|||||||
source_url=$(curl -s https://api.github.com/repos/Donkie/Spoolman/releases/latest | jq -r '.assets[] | select(.name == "spoolman.zip").browser_download_url') && \
|
source_url=$(curl -s https://api.github.com/repos/Donkie/Spoolman/releases/latest | jq -r '.assets[] | select(.name == "spoolman.zip").browser_download_url') && \
|
||||||
curl -sSL $source_url -o temp.zip && unzip temp.zip -d ./Spoolman && rm temp.zip && \
|
curl -sSL $source_url -o temp.zip && unzip temp.zip -d ./Spoolman && rm temp.zip && \
|
||||||
cd ./Spoolman && \
|
cd ./Spoolman && \
|
||||||
bash ./scripts/install_debian.sh
|
bash ./scripts/install.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Updating
|
#### Updating
|
||||||
@@ -77,7 +77,7 @@ source_url=$(curl -s https://api.github.com/repos/Donkie/Spoolman/releases/lates
|
|||||||
curl -sSL $source_url -o temp.zip && unzip temp.zip -d ./Spoolman && rm temp.zip && \
|
curl -sSL $source_url -o temp.zip && unzip temp.zip -d ./Spoolman && rm temp.zip && \
|
||||||
cp Spoolman_old/.env Spoolman/.env && \
|
cp Spoolman_old/.env Spoolman/.env && \
|
||||||
cd ./Spoolman && \
|
cd ./Spoolman && \
|
||||||
bash ./scripts/install_debian.sh && \
|
bash ./scripts/install.sh && \
|
||||||
rm -rf ../Spoolman_old
|
rm -rf ../Spoolman_old
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -51,38 +51,65 @@ else
|
|||||||
echo -e "${ORANGE}Please look up how to install Python 3.9 or later for your specific operating system.${NC}"
|
echo -e "${ORANGE}Please look up how to install Python 3.9 or later for your specific operating system.${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# Install needed system packages
|
# Get os package manager
|
||||||
#
|
#
|
||||||
# Run apt-get update
|
if [[ -f /etc/os-release ]]; then
|
||||||
echo -e "${GREEN}Updating apt-get cache...${NC}"
|
source /etc/os-release
|
||||||
sudo apt-get update || exit 1
|
if [[ "$ID_LIKE" == *"debian"* || "$ID" == *"debian"* ]]; then
|
||||||
|
pkg_manager="apt-get"
|
||||||
|
update_cmd="sudo $pkg_manager update"
|
||||||
|
install_cmd="sudo $pkg_manager install -y"
|
||||||
|
echo -e "${GREEN}Detected Debian-based system. Using apt-get package manager.${NC}"
|
||||||
|
elif [[ "$ID_LIKE" == *"arch"* || "$ID" == *"arch"* ]]; then
|
||||||
|
pkg_manager="pacman"
|
||||||
|
update_cmd="sudo $pkg_manager -Sy"
|
||||||
|
install_cmd="sudo $pkg_manager -S --noconfirm"
|
||||||
|
echo -e "${GREEN}Detected Arch-based system. Using pacman package manager.${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${ORANGE}Your operating system is not supported. Either try to install manually or reach out to spoolman github for support.${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
install_packages=0
|
# Run pkg manager update
|
||||||
|
echo -e "${GREEN}Updating $pkg_manager cache...${NC}"
|
||||||
|
$update_cmd || exit 1
|
||||||
|
packages=""
|
||||||
if ! python3 -c 'import venv, ensurepip' &>/dev/null; then
|
if ! python3 -c 'import venv, ensurepip' &>/dev/null; then
|
||||||
echo -e "${ORANGE}Python venv module is not accessible. Installing venv...${NC}"
|
echo -e "${ORANGE}Python venv module is not accessible. Installing venv...${NC}"
|
||||||
install_packages=1
|
if [[ "$pkg_manager" == "apt-get" ]]; then
|
||||||
|
packages+=" python3-venv"
|
||||||
|
elif [[ "$pkg_manager" == "pacman" ]]; then
|
||||||
|
packages+=" python-virtualenv"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! command -v pip3 &>/dev/null; then
|
if ! command -v pip3 &>/dev/null; then
|
||||||
echo -e "${ORANGE}Python pip is not installed. Installing pip...${NC}"
|
echo -e "${ORANGE}Python pip is not installed. Installing pip...${NC}"
|
||||||
install_packages=1
|
if [[ "$pkg_manager" == "apt-get" ]]; then
|
||||||
|
packages+=" python3-pip"
|
||||||
|
elif [[ "$pkg_manager" == "pacman" ]]; then
|
||||||
|
packages+=" python-pip"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! command -v pg_config &>/dev/null; then
|
if ! command -v pg_config &>/dev/null; then
|
||||||
echo -e "${ORANGE}pg_config is not available. Installing libpq-dev...${NC}"
|
echo -e "${ORANGE}pg_config is not available. Installing libpq-dev...${NC}"
|
||||||
install_packages=1
|
if [[ "$pkg_manager" == "apt-get" ]]; then
|
||||||
|
packages+=" libpq-dev"
|
||||||
|
elif [[ "$pkg_manager" == "pacman" ]]; then
|
||||||
|
packages+=" postgresql-libs"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! command -v unzip &>/dev/null; then
|
if ! command -v unzip &>/dev/null; then
|
||||||
echo -e "${ORANGE}unzip is not available. Installing unzip...${NC}"
|
echo -e "${ORANGE}unzip is not available. Installing unzip...${NC}"
|
||||||
install_packages=1
|
packages+=" unzip"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$install_packages" -eq 1 ]; then
|
if [[ -n "$packages" ]]; then
|
||||||
# sudo apt-get update
|
$install_cmd $packages || exit 1
|
||||||
sudo apt-get install -y python3-pip python3-venv libpq-dev unzip || exit 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -114,11 +141,15 @@ fi
|
|||||||
echo -e "${GREEN}Installing system-wide pip packages needed for Spoolman...${NC}"
|
echo -e "${GREEN}Installing system-wide pip packages needed for Spoolman...${NC}"
|
||||||
if [[ $is_externally_managed_env ]]; then
|
if [[ $is_externally_managed_env ]]; then
|
||||||
echo -e "${GREEN}Installing the packages using apt-get instead of pip since pip is externally managed...${NC}"
|
echo -e "${GREEN}Installing the packages using apt-get instead of pip since pip is externally managed...${NC}"
|
||||||
apt_packages=("python3-setuptools" "python3-wheel")
|
if [[ "$pkg_manager" == "apt-get" ]]; then
|
||||||
sudo apt-get install -y "${apt_packages[@]}" || exit 1
|
packages="python3-setuptools python3-wheel"
|
||||||
|
elif [[ "$pkg_manager" == "pacman" ]]; then
|
||||||
|
packages="python-setuptools python-wheel"
|
||||||
|
fi
|
||||||
|
$install_cmd $packages || exit 1
|
||||||
else
|
else
|
||||||
packages=("setuptools" "wheel")
|
packages="setuptools wheel"
|
||||||
for package in "${packages[@]}"; do
|
for package in $packages; do
|
||||||
if ! pip3 show "$package" &>/dev/null; then
|
if ! pip3 show "$package" &>/dev/null; then
|
||||||
echo -e "${GREEN}Installing $package...${NC}"
|
echo -e "${GREEN}Installing $package...${NC}"
|
||||||
pip3 install --user "$package" || exit 1
|
pip3 install --user "$package" || exit 1
|
||||||
@@ -138,9 +169,8 @@ fi
|
|||||||
# Install Spoolman
|
# Install Spoolman
|
||||||
#
|
#
|
||||||
|
|
||||||
# Install PDM dependencies
|
# Install dependencies
|
||||||
echo -e "${GREEN}Installing Spoolman backend and its dependencies...${NC}"
|
echo -e "${GREEN}Installing Spoolman backend and its dependencies...${NC}"
|
||||||
|
|
||||||
# Create venv if it doesn't exist
|
# Create venv if it doesn't exist
|
||||||
if [ ! -d ".venv" ]; then
|
if [ ! -d ".venv" ]; then
|
||||||
python3 -m venv .venv || exit 1
|
python3 -m venv .venv || exit 1
|
||||||
Reference in New Issue
Block a user