OK - Please see the scripts
here:
https://github.com/rkrug/R-BBEdit/tree/main/R.bbpackage/Contents/Scripts/Quarto
Start quart preview:
```
#!/bin/bash
quarto preview "$BB_DOC_PATH" &
pid=$(ps -A -mm | grep -v grep | grep "quarto" | grep "preview
${BB_DOC_PATH}" | awk '{print $1}')
pidfile=$(dirname "${BB_DOC_PATH}")/quarto.$BB_DOC_NAME.pid
echo pid: $pid
echo pidfile: "$pidfile"
```
and
Stop quarto preview:
```
#!/bin/bash
pidfile="$(dirname "${BB_DOC_PATH}")/quarto.$BB_DOC_NAME.pid"
pkill -F "$pidfile"
rm -f "$pidfile"
```
They run nicely, only the initial backgrounding is not working and I have
to Cancel the dialog box.
Also, I do not see a dialog box in the Stop script.
But I am happy with how it works (although automatic backgrounding ad
closing ot=f the dialog box would be nice).
Thanks,
Rainer
On Thursday, March 24, 2022 at 10:30:44 AM UTC+1 Rainer Krug wrote:
> Shellcheck is great - thanks. I am using it now!
>
> Concerning disown: I tried to add the `disown -a` command, but still had
> to quit with the Cancel button.
>
> On Wednesday, March 23, 2022 at 7:10:23 PM UTC+1 Sam Hathaway wrote:
>
>> I don’t recall the details of this, but you may need to disown the quarto
>> process so that bash doesn’t wait around for it to finish before exiting.
>>
>> P.S.: Shell scripting is a minefield and I suggest taking a look at
>> shellcheck <https://www.shellcheck.net/> if you haven’t already.
>>
>> Cheers,
>> -sam
>>
>> On 23 Mar 2022, at 4:55, Rainer Krug wrote:
>>
>> Thanks Jean - these sound interesting options and definitely worth
>> following. But thew (especially the launch agent approach) made me
>> thinking: what if I background the quarto process?
>>
>> I have now written the following script to start the previewer:
>>
>> #!/bin/bash
>>
>> quarto preview $BB_DOC_PATH &
>> pid=$!
>> pidfile=$(dirname "${BB_DOC_PATH}")/quarto.$BB_DOC_NAME.pid
>> echo pid: $pid
>> echo pidfile: $pidfile
>> echo $pid > $pidfile
>>
>> But it has two problems:
>>
>> 1) I still have to click "cancel", but the previewer continues running,
>> which is nice.
>> 2) the file .pid does not contain the pid of the quarto process
>>
>> The second one, I will solve with quarto, and the first one, I can live
>> with. It would be nice, to have a message pops up which tells the user to
>> close the dialog once the preview is visible?
>>
>> Thanks,
>>
>> Rainer
>>
>> On Tuesday, March 22, 2022 at 8:12:56 PM UTC+1 jj wrote:
>>
>> Hi Rainer,
>>
>> I suspect that BBEdit's Script menu will always be blocking because as
>> far
>> as I know it uses an XPCService. (This should be checked with Bare Bones
>> support though!)
>>
>> I think of 2 other options that you could try:
>>
>> *Option 1. Use the menubar Script Menu.*
>>
>> • Activate the menubar Script Menu in Script Editor > Preferences >
>> General > Script Menu.
>>
>> • Create BBEdit's application scripts directory :
>>
>> % mkdir -p ~/Library/Scripts/Applications/BBEdit
>>
>> • Scripts placed in this directory should appear in the menubar Script
>> Menu when BBEdit is the frontmost application. Generally they act as if
>> they where run from the Script Editor.
>>
>> • Sometimes this allows you to do things you couldn't do from BBEdit's
>> Script menu (like restarting BBEdit for example).
>>
>> *Option 2. Create a launchAgent that watches the folder containing your
>>
>> quarto files and that executes a script whenever a file is saved and thus
>>
>> refreshes the preview. *(Replace '<rainer>' with your user account in the
>> below paths.)
>>
>> • Save this launchAgent in ~/Library/LaunchAgents/quarto_watcher.plist
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
>> http://www.apple.com/DTDs/PropertyList-1.0.dtd>
>> <plist version="1.0">
>> <dict>
>> <key>Label</key>
>> <string>quarto_watcher</string>
>> <key>ProgramArguments</key>
>> <array>
>> <string>/Users/<rainer>/Library/Application
>> Support/BBEdit/Scripts/quarto_previewer.sh</string>
>> </array>
>> <key>WatchPaths</key>
>> <array>
>> <string>/Users/<rainer>/Documents/Quarto</string>
>> </array>
>> </dict>
>> </plist>
>>
>> • Save this script in ~/Library/Application
>> Support/BBEdit/Scripts/quarto_previewer.sh and give it the execution
>> permission.
>>
>> #!/usr/bin/env sh
>>
>> DOCPATH=$(osascript -e 'tell application "BBEdit" to (URL of first
>> document) as string')
>> EXTENSION="${DOCPATH##*.}"
>>
>> #echo $DOCPATH
>> #echo $EXTENSION
>>
>> if [ $EXTENSION == "quarto" ]; then
>> /usr/bin/open -a quarto "$DOCPATH"
>> fi
>>
>> • Create the /Users/<rainer>/Documents/Quarto directory. (Or some other
>> directory and change the launchAgent accordingly.)
>>
>> • Start the launchAgent in the terminal with:
>>
>> % launchctl load
>> /Users/<rainer>/Library/LaunchAgents/quarto_watcher.plist
>>
>> • Now whenever a file with extension ".quarto" is saved in the
>> ~/Documents/Quarto directory, the quarto_previewer.sh script should
>> execute and open or reload this file in quarto.
>>
>> HTH
>>
>> Jean Jourdain
>>
>> On Tuesday, March 22, 2022 at 2:52:19 PM UTC+1 Rainer Krug wrote:
>>
>> I have an using quarto <https://quarto.org> to render technical
>>
>> documents (it is very nice!) and writing them in BBEdit.
>>
>> Now I have a script which I want to start from BBEdit as I do with all
>> scripts, but this script runs continuously and updates the preview. I
>> would
>> very much like to have this in BBEdit (in the Scripts Menu), but when I
>> start this script, it blocks BBEdit.
>>
>> Is there a way of having that dialog non-blocking? Or is there another
>> way of running that script (at the moment I am running it from a
>> different
>> terminal)?
>>
>> Thanks.
>>
>>
--
This is the BBEdit Talk public discussion group. If you have a feature request
or need technical support, please email "[email protected]" rather than
posting here. Follow @bbedit on Twitter: <https://twitter.com/bbedit>
---
You received this message because you are subscribed to the Google Groups
"BBEdit Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/bbedit/7add4fc0-9392-4002-bd2c-bca92b370a43n%40googlegroups.com.