# 
        Store authoring guide
    
[Snapdir] delegates to stores the task of persisting fetching files on long-term storage.
When calling snapdir fetch, pull or push methods you must supply a
valid --store option which determines which store to use. The
--store argument is formatted as a URI, and the store name is taken
from the protocol part of the URI. For example, file://some/path is a
valid --store argument that will use the snapdir-file-store.
stores must be installed and available in the PATH of the calling
process. They will emmit commands that the snapdir CLI will execute or
display when running in --dryrun mode.
The following methods must be implemented by the stores.
        # 
        get-manifest-command
    
Emmit a manifest to stdout given a manifest id.
snapdir-${store_NAME}-store get-manifest-command --id "${snapdir_id}" --store "${store}"
        # 
        get-fetch-files-command
    
Generates the command or commands required to download to the cache the files defined on the manifest provided via stdin that are not already available locally.
cat generate-manifest-somehow | snapdir-${store_NAME}-store get-fetch-files-command --store "${store}" --cache-dir "${cache_dir}"
        # 
        get-push-command
    
Gets the command for pushing the contents of the staging directory to the store. The staging directory is a temporary directory that is used to hold files that are not yet available on the store.
snapdir-${store_NAME}-store get-push-command --staging-dir "${staging_directory}" --store "${store}"A testing snapdir-file-store is provided as an example implementation.