 ;;; Page data functions
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(defn base-page
+(defmulti base-page
   "Data that all app pages have in common."
+  :execution-context)
+
+(defmethod base-page :cli
+  [context]
+  (assoc (common-data/base-static) :app-title "CMR Search"))
+
+(defmethod base-page :default
   [context]
   (assoc (common-data/base-page context) :app-title "CMR Search"))
-
-(defn base-static
-  "Data that all static pages have in common.
-
-  Note that static pages don't have any context."
-  []
-  (assoc (common-data/base-static) :app-title "CMR Search"))
 
 (defn get-directory-links
   "Provide the list of links that will be rendered on the top-level directory

  (case tag
    "gov.nasa.eosdis" "EOSDIS"))

(defn collection-data
  "Get the collection data associated with a provider and tag."
  [context tag provider-id]
  (as-> {:tag-key tag
         :provider provider-id

             :text "EOSDIS Collections"}]}))

(defn get-eosdis-directory-links
  [context]
  (->> context
       (get-providers)
       (providers-data context "gov.nasa.eosdis")
       (hash-map :providers)
       (merge (base-page context))))
