I want to add an option to the finder context menu that calls hg add %1
with %1 being the full path of the selected file in finder.
Of course there are more useful cases I can think of, to add to the context menu.
Is there a simple way to do that which doesn't involve installing any 3rd party software or coding in a compiled language and building binary plugins?
Like creating a script with the script editor and dropping it in /Library/Contextual Menu Items/
?
Yeah, I know this is third party software - but for the sake of a fuller overview - http://www.abracode.com/free/cmworkshop/on_my_command.html. Another tool that would make your script writing easier is http://wafflesoftware.net/thisservice/ adding items to the service menu.
The steps have changed for Snow Leopard/10.6+ since @khachik's correct answer. To make sure its clear, here are the steps:
- Open Automator
- Create a new
Service
- Set the top two drop downs across the top to "Service receives selected
files or folders
inFinder.app
" - Set Pass input to
as arguments
- Write your script (see below for that).
- Save and choose the service name
Your Automator window should look like the this: :
You can now select multiple files in Finder and then execute your service from the Services sub-menu.
For your script, I think you want the following. This changes to each argument's directory then adds it. I'm using a for loop because Finder allows you to select multiple files in different folders (which could be in different repositories).
for f in "$@"
do
cd $(dirname $f); hg add $f
done
If you assumed they are all in the same repository you could do this:
cd $(dirname $1); hg add $@
create service
option has been removed, and "Quick Actions" or other WorkFlows don't appear to show up in the Context Menu any more (even when placed in the ~/Lib/Services
folder). They only show up in the Services menu. Any idea how to make this work again? –
Watercool Open Automator, create a custom workflow. From Library
choose Utilites
, then drag and drop Run shell script
to the workflow. Set Pass input
to As arguments
. Write in your script: hg add $1
. Then File menu->Save as a Plugin
, specify the name, choose plugin for Finder
, Save
. Right click on the file, choose More->Autamator-><PLUGIN_NAME>
.
Save as a Plugin...
item in File
menu in Automator? I'm running leopard, and it is there... I believe there should be something equivalent even if it doesn't have save as a plugin
. –
Karb cd
to the %1 file's path, would you mind telling me how to get this? thanks! –
Palmate dirname "$1"
&& do something) ? –
Karb if [ -d "$1" ]; then DIR=$1 else DIR=`dirname "$1"` fi
. Then you can do cd "$DIR"
to change into it. –
Serving Yeah, I know this is third party software - but for the sake of a fuller overview - http://www.abracode.com/free/cmworkshop/on_my_command.html. Another tool that would make your script writing easier is http://wafflesoftware.net/thisservice/ adding items to the service menu.
© 2022 - 2024 — McMap. All rights reserved.
Library
chooseUtilites
, then drag and dropRun shell script
to the workflow. SetPass input
toAs arguments
. Write in your script:hg add $1
. Then File menu->Save a Plugin, specify the name, choose plugin for Finder, Save. Right click on the file, choose More->Autamator-><PLUGIN_NAME> and enjoy. But there is nothing concerning programming here... – Karb