In order to have only one argument on the command line ($ hideextension ~/music/somesong.mp3), you can make your applescript become a shell script.
It is possible to use osascript in the shebang (#!/usr/bin/osascript) like in the following code.
To proceed :
Test your applescript code in a .scpt file => toggle_hidden_extension.scpt
When OK, add the shebang (
#!/usr/bin/osascript) at the beginning of the fileExport it with file format "text" => toggle_hidden_extension.applescript
Change extension to .sh => toggle_hidden_extension.sh
In Terminal, make it executable :
chmod u+x toggle_hidden_extension.shNow you can run it :
./toggle_hidden_extension.sh /path/to/myfile.mp3
So, the code to illustrate:
#!/usr/bin/osascript
(*
usage: toggle_hidden_extension.sh file
*)
(*
Test 1 : ./toggle_hidden_extension.sh /Users/boissonnfive/Desktop/file.txt
Test 2 : ./toggle_hidden_extension.sh
Test 3 : ./toggle_hidden_extension.sh 0fdjksl/,3
*)
on run argv
try
processArgs(argv)
toggleHiddenExtension(item 1 of argv)
on error
return usage()
end try
if result then
return "Extension hidden for " & POSIX path of (item 1 of argv)
else
return "Extension revealed for " & (POSIX path of (item 1 of argv))
end if
end run
on usage()
return "usage: toggle_hidden_extension.sh file"
end usage
on processArgs(myArgs)
set item 1 of myArgs to POSIX file (first item of myArgs) as alias
end processArgs
on toggleHiddenExtension(myFile)
tell application "Finder" to set extension hidden of myFile to not (extension hidden of myFile)
end toggleHiddenExtension