TweetFollow Us on Twitter

Feb 98 - Tips

Volume Number: 14 (1998)
Issue Number: 2
Column Tag: Tips & Tidbits

Tips & Tidbits

by Steve Sisak

Logical Names

Unfortunately, the Macintosh doesn't have a system-level mechanism for dealing with the notion of logical paths. Aliases don't work when files get moved, and using paths with device names doesn't work because everybody uses different device names (besides, device names aren't guaranteed to be unique).

As a kluge for MPW Shell, AppleScript and Macintosh Common Lisp, we create a folder in the system folder called "Logical Names" and place aliases to other files and folders in this folder. The name of each alias is then defined, in some application specific way (q.v, below), as a symbol bound to the file found by resolving the alias. This allows us to put aliases like "ProjFolder" or "MoreFilesFolder" in the logical names folder and have a chance of being able to use build scripts, Makefiles, etc. on other folks' machines without having to do a major re-write of the files in question.

Usage

To make use of any of the specific implementations described below, you need first create your logical names folder. This folder must be immediately in your system folder, and it must be named "Logical Names" (note the space).

Then, create some useful aliases in this folder. For example, we typically place the following in our logical names folders:

  TempFolder - an alias to the RAM Disk
  HomeFolder - an alias to the folder containing user folders
  ProjFolder - an alias to the folder containing project folders
  ArchivesFolder - an alias to the folder containing archives
  TransferFolder - an alias to a folder used as transient storage

You may place aliases within folders within the logical names folder, though you should avoid name conflicts between folders.

MPW Shell

This implementation is distributed in the file: UserStartup*!LogicalNames

For the MPW Shell implementation of Logical Names, we use a start-up script to create an environment variable for each alias in the logical names folder. The name of each variable is the same as the name of the alias. The value of each variable is the resolution of the alias. In addition, the LogicalNames variable is set to a list of the installed logical names.

To make use of this script, simply place it in your MPW folder (leaving it named "UserStartup*!LogicalNames").

For example, if you've created the "ArchivesFolder" logical name alias, once you launch MPW the following should report the full path to your archives folder:

  echo {ArchivesFolder}

AppleScript

This implementation is distributed in the file: LogicalNames.as.

For the AppleScript implementation of LogicalNames, we use a function to lookup and resolve a logical name alias given its name. For this implementation only, if the alias is in a sub-folder of the logical names folder, then a partial path must be supplied. LogicalNames.as also supplies a utility function which converts an item into a full path string.

To make use of these functions, you must first load and compile LogicalNames.as using the Script Editor. Then, you must save the compiled script as a Compiled Script to the file "LogicalNames" in your Scripting Additions folder. Now it's in a well-known location. Then, insert the following at the beginning of every script in which you want to use logical names:

  tell application "Finder"
    set LogicalNames to -
      (load script file -
        (name of startup disk & ":" & -
          name of system folder & ":" & -
          "Extensions:Scripting Additions:LogicalNames"))
  end tell

This will bind the LogicalNames variable to the (previously saved) compilation of the LogicalNames.as script, from which you may use the logicalNameGetItem(aName) and fullPathFromItem(anItem) functions.

For example, if you've created the "ArchivesFolder" logical name alias, a script such as the following should report the full path to your archives folder:

  tell application "Finder"
    set LogicalNames to -
      (load script file -
        (name of startup disk & ":" & -
          name of system folder & ":" & -
          "Extensions:Scripting Additions:LogicalNames"))
  end tell
  set myArc to logicalNameGetItem("ArchivesFolder") of LogicalNames
  fullPathFromItem(myArc) of LogicalNames

Macintosh Common Lisp

This implementation is distributed in the file: logical-names.lisp

MCL has a concept similar to logical names in its "logical hosts", but no reasonable built-in mechanisms for defining them in terms of the generalized Mac file system. So, for the MCL implementation of Logical Names, we simply provide functions for defining a logical host for each alias in the logical names folder. The name of each logical host is the same as the name of the alias. The target of each logical host is the resolution of the alias.

To make use of these functions, simply place logical-names.lisp in your MCL folder, then add the following to your init.lisp (or .fasl/.pfsl) file:

  (load "logical-names.lisp")
  (define-all-logical-names)

For example, if you've created the "ArchivesFolder" logical name alias, once you launch MCL the following should report the full path to your archives folder:

  (full-pathname (make-pathname :host "ArchivesFolder"))

Mike Webb, mjw@codewell.com and
Jeff Mallatt, jjm@codewell.com

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Latest Forum Discussions

See All

Top Mobile Game Discounts
Every day, we pick out a curated list of the best mobile discounts on the App Store and post them here. This list won't be comprehensive, but it every game on it is recommended. Feel free to check out the coverage we did on them in the links... | Read more »
Blue Archive heads for nature in New Yea...
Continuing the Blue Archive trend of releasing seasonal events to the Western version of the game nowhere near when they actually happened, the Cyber New Year March update has arrived. It brings with it a story centring around New Year, which it... | Read more »
Once Human conquers maths to be one hotl...
It feels like Once Human has been in development for about ten years at this point, but that has clearly not blunted the excitement for NetEases’ upcoming open-world survival game. As a matter of fact, it seems things have never been better, as... | Read more »
Watcher of Realms celebrates its first a...
It has been one year since Moonton Games kicked off the fantasy RPG Watcher of Realms, and there are a lot of celebrations to mark the occasion. You could take part in a brand-new mode, earn some skins, and recruit some of the strongest characters... | Read more »
Tarisland finally launches and celebrate...
It has felt like a lifetime, as it always does when it comes to waiting, but now Level Infinites’ anticipated MMORPG Tarisland is available across mobiles and Windows. It is time to pick your favourite of the nine classes, customise them to your... | Read more »
Reverse: 1999 offer Reality teams a mout...
Bluepoch Games has confirmed that Phase 2 of Reverse:1999s Version 1.6 has launched, and brings with it a lot to get your teeth into. Along with some sign-in rewards and a bunch of stories to enjoy, as well as a new 6-star character who just might... | Read more »
Uncharted Waters Origin unveils its late...
LINE Games, Motif, and KOEI Tecmo have announced the latest raft of updates for their seafaring adventure title Uncharted Waters Origin, and if you've played for a while you know what to expect. A new Admiral, new mates, and some new story, the... | Read more »
Wrecking Golf is a casual physics-based...
In case you missed it, Dusan Popovic has officially launched Wrecking Golf on iOS and Android, the indie developer's casual golf game on mobile presented with charming pixel-art visuals. Featuring physics-based mechanics and simple controls, the... | Read more »
Blue Archive is striking out to Anime Ex...
At this point in my writing career, I have seen quite a few press releases come about, and it feels like one of the most frequently updated games there is Blue Archive. It is, of course, great to see a game have a life like this, and now Nexon is... | Read more »
Grab a Grammy-inspired Backbone One with...
There are so many mobile controllers on the market that it could be a little difficult to know which to go for. If you are someone who goes for a good old celebrity endorsement, however, then the new Backbone One might be for you, created as it... | Read more »

Price Scanner via MacPrices.net

Walmart continues to sell clearance 13-inch M...
Walmart continues to offer clearance, but new, Apple 13″ M1 MacBook Airs (8GB RAM, 256GB SSD) online for $699, $300 off original MSRP, in Space Gray, Silver, and Gold colors. These are new MacBooks... Read more
Apple is offering steep discounts, up to $600...
Apple has standard-configuration 16″ M3 Max MacBook Pros available, Certified Refurbished, starting at $2969 and ranging up to $600 off MSRP. Each model features a new outer case, shipping is free,... Read more
Save up to $480 with these 14-inch M3 Pro/M3...
Apple has 14″ M3 Pro and M3 Max MacBook Pros in stock today and available, Certified Refurbished, starting at $1699 and ranging up to $480 off MSRP. Each model features a new outer case, shipping is... Read more
Amazon has clearance 9th-generation WiFi iPad...
Amazon has Apple’s 9th generation 10.2″ WiFi iPads on sale for $80-$100 off MSRP, starting only $249. Their prices are the lowest available for new iPads anywhere: – 10″ 64GB WiFi iPad (Space Gray or... Read more
Apple is offering a $50 discount on 2nd-gener...
Apple has Certified Refurbished White and Midnight HomePods available for $249, Certified Refurbished. That’s $50 off MSRP and the lowest price currently available for a full-size Apple HomePod today... Read more
The latest MacBook Pro sale at Amazon: 16-inc...
Amazon is offering instant discounts on 16″ M3 Pro and 16″ M3 Max MacBook Pros ranging up to $400 off MSRP as part of their early July 4th sale. Shipping is free. These are the lowest prices... Read more
14-inch M3 Pro MacBook Pros with 36GB of RAM...
B&H Photo has 14″ M3 Pro MacBook Pros with 36GB of RAM and 512GB or 1TB SSDs in stock today and on sale for $200 off Apple’s MSRP, each including free 1-2 day shipping: – 14″ M3 Pro MacBook Pro (... Read more
14-inch M3 MacBook Pros with 16GB of RAM on s...
B&H Photo has 14″ M3 MacBook Pros with 16GB of RAM and 512GB or 1TB SSDs in stock today and on sale for $150-$200 off Apple’s MSRP, each including free 1-2 day shipping: – 14″ M3 MacBook Pro (... Read more
Amazon is offering $170-$200 discounts on new...
Amazon is offering a $170-$200 discount on every configuration and color of Apple’s M3-powered 15″ MacBook Airs. Prices start at $1129 for models with 8GB of RAM and 256GB of storage: – 15″ M3... Read more
Amazon is offering a $200 discount on 14″ M3...
Amazon has 14-inch M3 MacBook Pros in stock and on sale for $150-$200 off MSRP. Shipping is free. Note that Amazon’s stock tends to come and go, so be sure to check their site often if the model you... Read more

Jobs Board

Solutions Engineer - *Apple* - SHI (United...
**Job Summary** An Apple Solution Engineer's primary role is tosupport SHI customers in their efforts to select, deploy, and manage Apple operating systems and Read more
*Apple* / Mac Administrator - JAMF Pro - Ame...
Amentum is seeking an ** Apple / Mac Administrator - JAMF Pro** to provide support with the Apple Ecosystem to include hardware and software to join our team and Read more
Operations Associate - *Apple* Blossom Mall...
Operations Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
Cashier - *Apple* Blossom Mall - JCPenney (...
Cashier - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Blossom Mall Read more
Omnichannel Associate - *Apple* Blossom Mal...
Omnichannel Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.