diff --git a/install.sh b/install.sh index 1060bc7..22757f7 100755 --- a/install.sh +++ b/install.sh @@ -4,6 +4,19 @@ set -e # Exit on error cd /tmp/ git clone https://github.com/th3r00t/pyShelf.git cd /tmp/pyShelf/ +# create pyshelf system user if it doesn't exist +if ! id -u pyshelf >/dev/null 2>&1; then + sudo useradd -r -s /usr/bin/nologin pyshelfA + sudo mkdir -p /home/pyshelf + sudo chown pyshelf:pyshelf /home/pyshelf + sudo chmod 755 /home/pyshelf +fi +# make home dir for pyshelf user if it doesn't exist +if [ ! -d /home/pyshelf ]; then + sudo mkdir -p /home/pyshelf + sudo chown pyshelf:pyshelf /home/pyshelf + sudo chmod 755 /home/pyshelf +fi # Ensure the correct branch is checked out before installing dependencies git fetch origin @@ -15,14 +28,12 @@ if [ -f /etc/arch-release ]; then sudo mkdir /etc/pyShelf sudo cp -avR . /etc/pyShelf cd /etc/pyShelf - # I need to create a system user for pyshelf, if it doesn't exist - if ! id -u pyshelf >/dev/null 2>&1; then - sudo useradd -r -s /usr/bin/nologin pyshelf - fi - sudo chown -R pyshelf:pyshelf /etc/pyShelf - sudo chmod -R 755 /etc/pyShelf - sudo -u pyshelf uv sync - sudo -u pyshelf mkdir release + # sudo chown -R pyshelf:pyshelf /etc/pyShelf + # sudo chmod -R 755 /etc/pyShelf + # sudo -u pyshelf uv sync + # sudo -u pyshelf mkdir release + sudo uv sync + sudo mkdir release # sudo -u pyshelf direnv allow else sudo apt-get update @@ -31,7 +42,7 @@ else fi # Build the release -sudo -u pyshelf ./build.sh +sudo ./build.sh # Install assets # sudo mkdir -p /var/lib/pyshelf/assets @@ -40,5 +51,10 @@ sudo -u pyshelf ./build.sh # Install executable # sudo cp ./release/pyshelf /usr/local/bin/pyshelf +sudo ln -s /etc/pyShelf/pyshelf.sh /usr/local/bin/ +# Make sure the executable is owned by the pyshelf user +# sudo chown pyshelf:pyshelf /usr/local/bin/pyshelf.sh +# Make the executable accessible +# sudo chmod 755 /usr/local/bin/pyshelf.sh # sudo chown pyshelf:pyshelf /usr/local/bin/pyshelf diff --git a/pyshelf.sh b/pyshelf.sh index 3f1fdbe..253751d 100755 --- a/pyshelf.sh +++ b/pyshelf.sh @@ -9,8 +9,8 @@ else exit 1 fi # then we need to run the main script -if [ -f "release/pyshelf" ]; then - sudo -u pyshelf /etc/pyShelf/release/pyshelf +if [ -f "/etc/pyShelf/release/pyshelf" ]; then + exec /etc/pyShelf/release/pyshelf else echo "Main script not found. Please check the directory." exit 1