SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Sponsored Links

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

Introduction

ondir is a small program to automate tasks specific to certain directories. It works by executing scripts in directories when you enter and leave them.

Scripts in the doc subdirectory show how to automate this when using either BASH or TCSH.

Getting Started

  1. Add scripts.sh or scripts.tcsh to your startup scripts for BASH or TCSH, respectively.
  2. Restart your shell.
  3. Add an entry to your ~/.ondirrc such as those described below.
  4. Change into the corresponding path.
  5. Check for success.

Details

An example of ondirs usefulness is when editing web pages. I have a umask of 077 by default, but when creating web pages in ~/public_html the web content has to be readable by the user the web server runs as. By adding a path section for this directory to my ~/.ondirrc, and corresponding enter and leave sub-sections, any scripts in the enter/leave sub-sections are executed when I enter and leave the directory, respectively. Here is how the entry in my ~/.ondirrc would look:

enter /home/athomas/public_html

umask 022

leave /home/athomas/public_html

umask 077

And that's all it does. Simple, but effective.

ondir takes one parameter, the directory you are leaving.

Note that these scripts will be executed when you pass THROUGH the directory as well. Using the preceding example, typing "cd ~/public_html/mywebpage" will execute the 'enter' in ~/public_html. The reverse is also true: when leaving a path, all 'leave' scripts in the intermediate directories are executed.

Another useful example is if you have a project with its own "bin" directory. You can use the following:

enter /home/athomas/projects/myproject

PATH=$PATH:$ONDIRWD/bin

leave /home/athomas/projects/myproject

PATH=`echo $PATH | sed -e "s,:$ONDIRWD/bin,,g"`

Example of usage:

[alec@cavern:~]umask
077
[alec@cavern:~]cd public_html
[alec@cavern:~/public_html]umask
022
[alec@cavern:~/public_html]


Sponsored Links

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.