Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
README.md from //Storage/LIBRARY/mcfatem/DG-FEDORA-Master

Note: This file is maintained as a public gist to simplify sharing. It can be found at https://gist.github.com/Digital-Grinnell/f0900e9af9341e67433633be3fa0895d.

DG-FEDORA is the name of a USB stick/volume that I designed long ago to be a "portable" FEDORA repository intended for use with a local ISLE stack. It holds a pre-configured and populated sample of FEDORA digital objects gleaned from Digital.Grinnell. Using DG-FEDORA you could easily add a pre-populated repository of objects to your "demo" or "local" environment ISLE project in as little as 5 minutes.

The canonical USB stick was renamed DG-MASTER on 28-Oct-2020 and it now includes utility scripts for many purposes. One script, clone-to-X.sh has been used to create numerous copies of DG-MASTER for distribution to multiple devices and colleagues. Each copy is given a UNIQUE name to identify its owner or purpose. For example, I have a personal copy named DG-MARK1. The DG- prefix is REQUIRED, so do not change it!

In the remainder of this document mentions of DG-NAME can be assumed to mean "the DG-something stick in your possession".

Note: The script and document portions of the DG-MASTER stick are controlled in a private repository at https://github.com/Digital-Grinnell/DG-MASTER-Scripts. NO data is held in this GitHub repository, only code and documentation.

Building https://dg.localdomain

See Compact Build of dg.localdomain - Concise Instructions for the quick-and-easy steps required to launch a local https://dg.localdomain ISLE stack on your OS X (or Linux) workstation.

Prerequisites

To successfully use this USB stick your system will need to meet the following prerequisite requirements.

  • Your workstation must meet all the hardware requirements of ISLE. See ISLE's ./docs/install/host-hardware-requirements.md for details.
  • Your workstation environment must meet all the minimum software requirements of ISLE. See ISLE's ./docs/install/host-software-dependencies.md for details.
  • This workflow assumes your workstation is running OS X. Other workstation types supported by ISLE may be acceptable, but this USB volume will have to be mounted differently.
  • You must have a working "demo" or "local" ISLE stack already running, or use the steps documented in Compact Build of dg.localdomain - Concise Instructions to start a https://dg.localdomain stack of your own.

Mounting DG-NAME

In Mac OS X you simply have to plug the DG-NAME USB stick into an available USB port on your Mac workstation. After a few seconds the USB stick will be automatically mounted as /Volumes/DG-NAME, and the /Volumes directory is automatically "shared" with Docker.

Make DG-NAME Writable

In Mac OS X, open a terminal and use the following command to make DG-NAME writable, so that you can save newly ingested objects and updates to existing objects:

  • sudo mount -u -w /Volumes/DG-NAME

Keeping DG-NAME Updated

I also keep a MASTER copy, as the name implies, on the Grinnell College STORAGE server at smb://Storage/LIBRARY/mcfatem. Before using your DG-NAME stick you may wish to connect to //Storage/LIBRARY/mcfatem and update as described below.

Connecting to //Storage/LIBRARY/mcfatem

You should be able connect your Mac workstation to //Storage/LIBRARY/mcfatem by first initiating a VPN connection to campus, if needed. Once VPN has been established, open Finder and select Go then Connect to server... from its menu. In the selection window, pick or enter 'smb://Storage/Library/mcfatem', click Connect, and supply your campus login credentials, if necessary.

If your connection is successful you should be able to open a terminal on your workstation and successfully cd /Volumes/mcfatem/DG-MASTER, where you can then list the contents of the network drive using ls -alh. At a minimum the contents should include:

╭─markmcfate@MAD25W812UJ1G9 /Volumes/mcfatem/DG-MASTER ‹ruby-2.3.0›
╰─$ ls -alh
total 408
drwx------  1 markmcfate  staff    16K Oct 21 14:51 .
drwx------  1 markmcfate  staff    16K Oct 21 12:44 ..
-rwx------  1 markmcfate  staff    10K Oct 21 13:50 .DS_Store
drwx------  1 markmcfate  staff    16K Oct 20 10:45 .Spotlight-V100
drwx------  1 markmcfate  staff    16K Oct 20 10:45 .TemporaryItems
drwx------  1 markmcfate  staff    16K Oct 20 10:50 .Trashes
drwx------  1 markmcfate  staff    16K Oct 20 10:51 .fseventsd
-rwx------  1 markmcfate  staff    90B Oct 21 14:51 DG-FEDORA-Master.md
drwx------  1 markmcfate  staff    16K Oct 20 17:23 Extras
-rwx------  1 markmcfate  staff   5.8K Oct 21 12:55 README.md
-rwx------  1 markmcfate  staff   2.3K Oct 21 10:22 RESTART-1.sh
-rwx------  1 markmcfate  staff   1.8K Oct 21 10:33 RESTART-2.sh
-rwx------  1 markmcfate  staff   1.3K Oct 21 11:26 RESTART-3.sh
-rwx------  1 markmcfate  staff   516B Oct 21 11:20 RESTART-4.sh
drwx------  1 markmcfate  staff    16K Oct  5  2019 Storage
drwx------  1 markmcfate  staff    16K Mar 18  2020 datastreamStore
drwx------  1 markmcfate  staff    16K Mar 17  2020 objectStore
-rwx------  1 markmcfate  staff   1.0K Oct 20 20:17 reset-keychain-access.md

Updating DG-NAME from DG-MASTER

A script is now provided to "pull" updates from the master repository at //Storage/LIBRARY/mcfatem/DG-MASTER to your mounted USB stick using rsync. If your DG-NAME stick is properly mounted you should download https://gist.github.com/Digital-Grinnell/69c3cca524071098bbf5c865ec632164 and save the file to /Volumes/DG-NAME/pull-from-master.sh. After fetching and saving the script, make it executable using chmod +x /Volumes/DG-NAME/pull-from-master.sh.

Now, with the new script in place you can update your USB stick like so:

cd /Volumes/DG-NAME
./pull-from-master.sh

Be patient and enjoy the show! The time it will take depends on many factors, so it's a good idea to plan ahead and run this command overnight, if possible.

Not Using Mac OS X?

If your workstation is not a Mac, you will need to insert the USB stick and take appropriate steps to:

  • Mount the stick with read/write permissions as /Volumes/DG-NAME.
  • Share the /Volumes or /Volumes/DG-NAME directory in your Docker settings/preferences.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment