1

New to AppleScript but I'm trying to migrate over from terminal scripting. After much research I am having issues trying to get a shell script running from within the .app file.

What I have so far:

to the_foo()
    tell application "Finder"
        set current_path to container of (path to me) as alias
        set path_in_posix to POSIX path of current_path
    end tell

    tell application "Terminal"
        set new_terminal to do script " "
        activate
        do script "cd " & path_in_posix in window 1
        do shell script "ls " & POSIX path of (path to me) & "Contents/Resources/Scripts/foobar.sh" in window 1
    end tell
end the_foo

The error I am getting:

enter image description here

Learned to open a new terminal with: Applescript to open a NEW terminal window in current space

I added in window 1 when I learned that do script opens a new terminal window every time, referenced: applescript and terminal ( run several do shell script in one terminal window )

I originally tried:

set script_Location to path to resource "Contents:Resources:Scripts:"
set run_Script to (quoted form of script_Location) & "foobar.sh"
do shell script run_Script

after referencing: How to change AppleScript path to a Terminal-style path? but when I run it I get the same error.

So how can I run the shell script located within the Scripts folder within the same window 1? I would ideally like to set a variable for the path so I can put multiple shells scripts in the Scripts folder.

2 Answers 2

1

It's probably just a typo

 do script "ls " & POSIX path of (path to me) & "Contents/Resources/Scripts/foobar.sh" in window 1

rather than

 do shell script "ls " & ...

I recommend to use System Events instead of the Finder to get the container of the script

tell application "System Events"
    set path_in_posix to POSIX path of container of (path to me)
end tell
Sign up to request clarification or add additional context in comments.

Comments

1

Vadian had the correct and better approach in a one liner. I did change

"Contents/Resources/Scripts/foobar.sh"

to

set script_Location to "Contents/Resources/Scripts/"
set foobar to do script "bash " & POSIX path of (path to me) & script_Location & "foobar.sh" in window 1

this approach helps if I want to add more than one shell script in the Scripts folder.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.