diff --git a/shell-setup/Dockerfile b/setup/Dockerfile similarity index 94% rename from shell-setup/Dockerfile rename to setup/Dockerfile index 575d09a..0f846d8 100644 --- a/shell-setup/Dockerfile +++ b/setup/Dockerfile @@ -32,7 +32,7 @@ RUN mkdir -p /home/testuser/shell/setup # Copy test script, startup script, and packages.list COPY --chown=testuser:testuser test-setup.sh /home/testuser/ COPY --chown=testuser:testuser startup.sh /home/testuser/ -COPY --chown=testuser:testuser setup/packages.list /home/testuser/shell/setup/ +COPY --chown=testuser:testuser packages.list /home/testuser/shell/ # Make scripts executable RUN chmod +x /home/testuser/test-setup.sh @@ -71,7 +71,7 @@ RUN mkdir -p /home/testuser/shell/setup # Copy test script, startup script, and packages.list COPY --chown=testuser:testuser test-setup.sh /home/testuser/ COPY --chown=testuser:testuser startup.sh /home/testuser/ -COPY --chown=testuser:testuser setup/packages.list /home/testuser/shell/setup/ +COPY --chown=testuser:testuser packages.list /home/testuser/shell/ # Make scripts executable RUN chmod +x /home/testuser/test-setup.sh diff --git a/shell-setup/bootstrap.sh b/setup/bootstrap.sh similarity index 100% rename from shell-setup/bootstrap.sh rename to setup/bootstrap.sh diff --git a/shell-setup/debian-patches.sh b/setup/debian-patches.sh similarity index 100% rename from shell-setup/debian-patches.sh rename to setup/debian-patches.sh diff --git a/shell-setup/run-docker-tests.sh b/setup/run-docker-tests.sh similarity index 100% rename from shell-setup/run-docker-tests.sh rename to setup/run-docker-tests.sh diff --git a/setup/startup.sh b/setup/startup.sh new file mode 100755 index 0000000..fb5ee2c --- /dev/null +++ b/setup/startup.sh @@ -0,0 +1,75 @@ +#!/bin/bash + +# Startup script for Docker containers to ensure permissions and run tests + +# Define colors for output +GREEN='\033[0;32m' +YELLOW='\033[0;33m' +RED='\033[0;31m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +echo -e "${BLUE}=== Container Startup Checks ===${NC}" + +# Display system information +echo -e "${BLUE}System information:${NC}" +if [ -f /etc/os-release ]; then + . /etc/os-release + echo -e "- OS: ${GREEN}$PRETTY_NAME${NC}" +else + echo -e "- OS: ${YELLOW}Unknown${NC}" +fi + +# Ensure packages.list is available +echo -e "${BLUE}Checking for packages.list:${NC}" +if [ -f "$HOME/shell/setup/packages.list" ]; then + echo -e "- packages.list: ${GREEN}Found${NC}" + # Count packages in list (excluding comments and empty lines) + pkg_count=$(grep -v '^//' "$HOME/shell/setup/packages.list" | grep -v -e '^$' | wc -l) + echo -e "- Package count: ${GREEN}$pkg_count packages${NC}" +else + echo -e "- packages.list: ${RED}Not found${NC}" + echo "Error: Could not find packages.list file. Tests will fail." +fi + +# Ensure logs directory has correct permissions +echo -e "${BLUE}Setting up logs directory:${NC}" +if [ -d "/logs" ]; then + echo -e "- Logs directory: ${GREEN}Found${NC}" + + # Check ownership and permissions + logs_owner=$(stat -c '%U:%G' /logs) + echo -e "- Current ownership: $logs_owner" + + echo "- Setting permissions on /logs directory..." + sudo chown -R $(whoami):$(whoami) /logs 2>/dev/null || echo -e "${YELLOW}Failed to set ownership${NC}" + sudo chmod -R 777 /logs 2>/dev/null || echo -e "${YELLOW}Failed to set permissions${NC}" + + # Verify permissions are correct + if [ -w "/logs" ]; then + echo -e "- Write permission: ${GREEN}OK${NC}" + + # Create a test file to really verify we can write + if touch "/logs/test_file" 2>/dev/null; then + echo -e "- Test write: ${GREEN}Succeeded${NC}" + rm -f "/logs/test_file" + else + echo -e "- Test write: ${RED}Failed${NC}" + fi + else + echo -e "- Write permission: ${RED}Failed${NC}" + fi +else + echo -e "- Logs directory: ${YELLOW}Not found${NC}" + echo "- Creating /logs directory..." + if sudo mkdir -p /logs && sudo chown -R $(whoami):$(whoami) /logs && sudo chmod -R 777 /logs; then + echo -e "- Created logs directory with proper permissions: ${GREEN}Success${NC}" + else + echo -e "- Creating logs directory: ${RED}Failed${NC}" + echo "Warning: Logs will be saved inside container only" + fi +fi + +echo -e "${BLUE}=== Starting Test Script ===${NC}" +# Run the test script +./test-setup.sh diff --git a/shell-setup/test-setup.sh b/setup/test-setup.sh similarity index 100% rename from shell-setup/test-setup.sh rename to setup/test-setup.sh diff --git a/shell-setup/startup.sh b/shell-setup/startup.sh old mode 100755 new mode 100644 index fb5ee2c..0c1ef78 --- a/shell-setup/startup.sh +++ b/shell-setup/startup.sh @@ -72,4 +72,4 @@ fi echo -e "${BLUE}=== Starting Test Script ===${NC}" # Run the test script -./test-setup.sh +"$HOME/shell/setup/test-setup.sh"