# Scripts

(Difference between revisions)

All software available from this site uses the Creative Commons BSD License; the license template is available here.

## Software

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)

## On Making Scripts Work From the S Drive on Windows

### Associating Ruby Scripts

• To associate a Ruby .rbw file with the run-time executable found on the Share Drive
• Double click on the script file or a shortcut to the script file.
• If you do not have Ruby installed on your local machine or proper file associations in place Windows will show you an error telling you it does not know what to do with that kind of file.
• In the error window select the option to choose an application from a list, then click OK.
• Click on Browse then navigate to "S:\Digital Projects\Administrative\scripts\Ruby193\bin" and select in this case "rubyw.exe"
• Make sure the "Always use this application..." box is checked, and click "Ok".
• Once the file association is made files with that extension will always default to opening with the selected application.
• The file associations need to be set separately for each computer that needs to run scripts with an executable located on the S Drive.

## 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 EOL (end of line) 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 you may need to strip all whitespaces and colons from your timestamp variable. Not doing so can prevent the file from getting written.
• For example if your timestamp variable is $timestamp in a PERL script try this after you've already established your timestamp value:  #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 back slashes.