Skip to content

An automation setup example #7

Open
@schmidt9

Description

@schmidt9

Just sharing example script to automate shutdown setup without original files modification (working with copies), might be appended to readme and be helpful

#!/bin/bash

SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
EXECUTABLE_COMMAND="killall Simulator"

#setup paths

REPO_DIR_NAME="macosx-script-boot-shutdown"
REPO_PLIST_NAME="boot-shutdown-script.plist"
REPO_SCRIPT_NAME="boot-shutdown.sh"

REPO_WORKING_DIRECTORY="$SCRIPT_DIR/$REPO_DIR_NAME"
REPO_LOG_PATH=$SCRIPT_DIR

REPO_CUSTOM_PLIST_PATH="$SCRIPT_DIR/$REPO_PLIST_NAME"
REPO_CUSTOM_SCRIPT_PATH="$SCRIPT_DIR/$REPO_SCRIPT_NAME"

#create plist & script copy

cp "$REPO_WORKING_DIRECTORY/$REPO_PLIST_NAME" $REPO_CUSTOM_PLIST_PATH
cp "$REPO_WORKING_DIRECTORY/$REPO_SCRIPT_NAME" $REPO_CUSTOM_SCRIPT_PATH

#replace vars in custom plist

sed -i '' "s#SCRIPT_PATH#$REPO_WORKING_DIRECTORY#g" "$REPO_CUSTOM_PLIST_PATH"
sed -i '' "s#LOG_PATH#$REPO_LOG_PATH#g" "$REPO_CUSTOM_PLIST_PATH"
sed -i '' "s#.*AT SHUTDOWN.*#$EXECUTABLE_COMMAND#g" "$REPO_CUSTOM_SCRIPT_PATH"

#setup launch daemon

sudo cp $REPO_PLIST_NAME  /Library/LaunchDaemons/
sudo launchctl load -w "/Library/LaunchDaemons/$REPO_PLIST_NAME"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions