Scripts
From UA Libraries Digital Services Planning and Documentation
(Difference between revisions)
Line 30: | Line 30: | ||
'''On Making Scripts Work on Mac OSX:''' | '''On Making Scripts Work on Mac OSX:''' | ||
− | ''Associating Scripts | + | ''Associating Scripts'' |
*To associate files with particular software , CTRL-click on the file. | *To associate files with particular software , CTRL-click on the file. | ||
**Choose "open with". If that isn’t available, choose "open". | **Choose "open with". If that isn’t available, choose "open". | ||
Line 48: | Line 48: | ||
**If for some reason this doesn't work, make sure the script is saved with a UNIX style byte order so that the shebang will be read properly by the MAC. | **If for some reason this doesn't work, make sure the script is saved with a UNIX style byte order so that the shebang will be read properly by the MAC. | ||
**A good text editor like Notepad ++ (Windows) easily allows one to make these changes to text files. | **A good text editor like Notepad ++ (Windows) easily allows one to make these changes to text files. | ||
+ | |||
+ | ''Programming Notes'' | ||
+ | *Save scripts with a UNIX style byte order. Not doing so appears to prevent the OS from being able to read the shebang line. | ||
+ | *If you are adding timestamps to log files, etc. strip all whitespaces and colons from your timestamp variable for any timestamps . Not doing so can prevent the file from getting written. | ||
+ | **For example if your timestamp variable is '''$timestamp''' try this: | ||
+ | #start MAC block | ||
+ | #trimming whitespace and colons because the MAC won't write the output file if they are present | ||
+ | $timestamp=~ s/\s//g; | ||
+ | $timestamp=~ s/://g; | ||
+ | #end MAC block | ||
+ | *Make sure you use only forward slashes for path slashes. e.x. "foo.bar" is good, but "foo\bar" is bad. | ||
+ | **There should be no need to ever use backslashes in scripts, however, as Windows OS is equally tolerant of forward and backslashes. |
Revision as of 16:49, 10 November 2010
All software available from this site uses the Creative Commons BSD License; the license template is available here.
Cabaniss_Software (For the Cabaniss NHPRC project)
Mass_Content_Software (for mass digitization of collection materials to be linked to from finding aid, without manually-created item level metadata)
For Getting batch information about your files
On Making Scripts Work on Mac OSX:
Associating Scripts
- To associate files with particular software , CTRL-click on the file.
- Choose "open with". If that isn’t available, choose "open".
- In the Enable box, set the value to "All Applications".
- Check the "Always Open With" box.
- Select Utilities>Terminal
- Then click "Open" and you should be good to go.
Running Scripts
- Since the MACs come with many scripting languages pre-installed the scripts are essentially run by double clicking on the file name, although manually launching them from the terminal should work as well.
- For example:
$ python foo.py $ ./foo.py
- In the second case the script AND in the case of double-clicking the filename, the script would have to include the appropriate shebang line, for example #!/usr/bin/python for Python scripts and #!/usr/bin/perl for Perl scripts.
- This will allow the MACs to know where to locate Python and Perl, respectively.
- If for some reason this doesn't work, make sure the script is saved with a UNIX style byte order so that the shebang will be read properly by the MAC.
- A good text editor like Notepad ++ (Windows) easily allows one to make these changes to text files.
Programming Notes
- Save scripts with a UNIX style byte order. Not doing so appears to prevent the OS from being able to read the shebang line.
- If you are adding timestamps to log files, etc. strip all whitespaces and colons from your timestamp variable for any timestamps . Not doing so can prevent the file from getting written.
- For example if your timestamp variable is $timestamp try this:
#start MAC block #trimming whitespace and colons because the MAC won't write the output file if they are present $timestamp=~ s/\s//g; $timestamp=~ s/://g; #end MAC block
- Make sure you use only forward slashes for path slashes. e.x. "foo.bar" is good, but "foo\bar" is bad.
- There should be no need to ever use backslashes in scripts, however, as Windows OS is equally tolerant of forward and backslashes.