Files
jenkins/osx/scripts/postinstall-launchd
T

36 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
JENKINS_PLIST="/Library/LaunchDaemons/org.jenkins-ci.plist"
# Because PackageMaker just copies the components, we need to fix the permissions
chown root:wheel ${JENKINS_PLIST}
chmod 644 ${JENKINS_PLIST}
mkdir -p /Users/Shared/Jenkins
find /Users/Shared/Jenkins \( -not -user daemon -or -not -group daemon \) -print0 | xargs -0 chown daemon:daemon
# Create log directory, which can be written by Jenkins daemon
mkdir -p /var/log/jenkins
chown daemon:daemon /var/log/jenkins
# Enable log rotation by newsyslog
cat <<_EOT_ > /etc/newsyslog.d/jenkins.conf
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
# Rotate jenkins log at midnight, and preserve old logs in 3 days
/var/log/jenkins/jenkins.log 644 3 * \$D0 J
_EOT_
# Load and start the launch daemon
/bin/launchctl load -w ${JENKINS_PLIST}
# Wait for port 8080 to start accepting connections.
# But don't wait forever.
timeout=$(($(date +%s) + 60))
while [ $(date +%s) -lt $timeout ] && ! curl -s http://localhost:8080 >/dev/null; do
sleep 1
done
if [ $(date +%s) -ge $timeout ]; then
echo "Timed out waiting for Jenkins port 8080 to start listening!"
echo "Either Jenkins did not load or this system is very slow."
fi