-
Notifications
You must be signed in to change notification settings - Fork 189
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move installer scripts within Nudge.app
- Loading branch information
Showing
9 changed files
with
222 additions
and
120 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# | ||
# Copyright 2021-Present Erik Gomez. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the 'License'); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# https://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an 'AS IS' BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
# If you change your agent file name, update the following line | ||
launch_agent_plist_name='com.github.macadmins.Nudge.plist' | ||
|
||
# Base paths | ||
launch_agent_base_path='Library/LaunchAgents/' | ||
|
||
# Load agent if installing to a running system | ||
if [[ $3 == "/" ]] ; then | ||
# Fail the install if the admin forgets to change their paths and they don't exist. | ||
if [ ! -e "$3/${launch_agent_base_path}${launch_agent_plist_name}" ]; then | ||
echo "LaunchAgent missing, exiting" | ||
exit 1 | ||
fi | ||
|
||
# Current console user information | ||
console_user=$(/usr/bin/stat -f "%Su" /dev/console) | ||
console_user_uid=$(/usr/bin/id -u "$console_user") | ||
|
||
# Only enable the LaunchAgent if there is a user logged in, otherwise rely on built in LaunchAgent behavior | ||
if [[ -z "$console_user" ]]; then | ||
echo "Did not detect user" | ||
elif [[ "$console_user" == "loginwindow" ]]; then | ||
echo "Detected Loginwindow Environment" | ||
elif [[ "$console_user" == "_mbsetupuser" ]]; then | ||
echo "Detect SetupAssistant Environment" | ||
elif [[ "$console_user" == "root" ]]; then | ||
echo "Detect root as currently logged-in user" | ||
else | ||
# Unload the agent so it can be triggered on re-install | ||
/bin/launchctl asuser "${console_user_uid}" /bin/launchctl unload -w "$3${launch_agent_base_path}${launch_agent_plist_name}" | ||
# Kill Nudge just in case (say someone manually opens it and not launched via launchagent | ||
/usr/bin/killall Nudge | ||
# Load the launch agent | ||
/bin/launchctl asuser "${console_user_uid}" /bin/launchctl load -w "$3${launch_agent_base_path}${launch_agent_plist_name}" | ||
fi | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# | ||
# Copyright 2021-Present Erik Gomez. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the 'License'); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# https://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an 'AS IS' BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
# If you change your agent file name, update the following line | ||
launch_daemon_plist_name='com.github.macadmins.Nudge.logger.plist' | ||
|
||
# Base paths | ||
launch_daemon_base_path='Library/LaunchDaemons/' | ||
|
||
# Load agent if installing to a running system | ||
if [[ $3 == "/" ]] ; then | ||
# Fail the install if the admin forgets to change their paths and they don't exist. | ||
if [ ! -e "$3/${launch_daemon_base_path}${launch_daemon_plist_name}" ]; then | ||
echo "LaunchDaemon missing, exiting" | ||
exit 1 | ||
fi | ||
|
||
# Unload the agent so it can be triggered on re-install | ||
/bin/launchctl unload -w "$3${launch_daemon_base_path}${launch_daemon_plist_name}" | ||
# Load the launch agent | ||
/bin/launchctl load -w "$3${launch_daemon_base_path}${launch_daemon_plist_name}" | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# | ||
# Copyright 2021-Present Erik Gomez. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the 'License'); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# https://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an 'AS IS' BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
# If you change your agent/daemon files name, update the following lines | ||
launch_agent_plist_name='com.github.macadmins.Nudge.plist' | ||
launch_daemon_plist_name='com.github.macadmins.Nudge.logger.plist' | ||
|
||
# Base paths | ||
launch_agent_base_path='Library/LaunchAgents/' | ||
launch_daemon_base_path='Library/LaunchDaemons/' | ||
|
||
# Load agent and daemon if installing to a running system | ||
if [[ $3 == "/" ]] ; then | ||
## Agent | ||
# Fail the install if the admin forgets to change their paths and they don't exist. | ||
if [ ! -e "$3/${launch_agent_base_path}${launch_agent_plist_name}" ]; then | ||
echo "LaunchAgent missing, exiting" | ||
exit 1 | ||
fi | ||
|
||
# Current console user information | ||
console_user=$(/usr/bin/stat -f "%Su" /dev/console) | ||
console_user_uid=$(/usr/bin/id -u "$console_user") | ||
|
||
# Only enable the LaunchAgent if there is a user logged in, otherwise rely on built in LaunchAgent behavior | ||
if [[ -z "$console_user" ]]; then | ||
echo "Did not detect user" | ||
elif [[ "$console_user" == "loginwindow" ]]; then | ||
echo "Detected Loginwindow Environment" | ||
elif [[ "$console_user" == "_mbsetupuser" ]]; then | ||
echo "Detect SetupAssistant Environment" | ||
elif [[ "$console_user" == "root" ]]; then | ||
echo "Detect root as currently logged-in user" | ||
else | ||
# Unload the agent so it can be triggered on re-install | ||
/bin/launchctl asuser "${console_user_uid}" /bin/launchctl unload -w "$3${launch_agent_base_path}${launch_agent_plist_name}" | ||
# Kill Nudge just in case (say someone manually opens it and not launched via launchagent | ||
/usr/bin/killall Nudge | ||
# Load the launch agent | ||
/bin/launchctl asuser "${console_user_uid}" /bin/launchctl load -w "$3${launch_agent_base_path}${launch_agent_plist_name}" | ||
fi | ||
|
||
## Daemon Logger | ||
# Fail the install if the admin forgets to change their paths and they don't exist. | ||
if [ ! -e "$3/${launch_daemon_base_path}${launch_daemon_plist_name}" ]; then | ||
echo "LaunchDaemon missing, exiting" | ||
exit 1 | ||
fi | ||
|
||
# Unload the agent so it can be triggered on re-install | ||
/bin/launchctl unload -w "$3${launch_daemon_base_path}${launch_daemon_plist_name}" | ||
# Load the launch agent | ||
/bin/launchctl load -w "$3${launch_daemon_base_path}${launch_daemon_plist_name}" | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# | ||
# Copyright 2021-Present Erik Gomez. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the 'License'); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# https://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an 'AS IS' BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
# Only run if on a running system | ||
if [[ $3 == "/" ]] ; then | ||
# Current console user information | ||
console_user=$(/usr/bin/stat -f "%Su" /dev/console) | ||
|
||
# Only run if there is a user logged in, otherwise do nothing | ||
if [[ -z "$console_user" ]]; then | ||
echo "Did not detect user" | ||
elif [[ "$console_user" == "loginwindow" ]]; then | ||
echo "Detected Loginwindow Environment" | ||
elif [[ "$console_user" == "_mbsetupuser" ]]; then | ||
echo "Detect SetupAssistant Environment" | ||
elif [[ "$console_user" == "root" ]]; then | ||
echo "Detect root as currently logged-in user" | ||
else | ||
# Kill Nudge is running | ||
/usr/bin/pgrep -i Nudge | /usr/bin/xargs kill | ||
fi | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.