Smos Logo Smos

A comprehensive self-management system

The Smos Sync Client

Documentation for the Smos Synchronisation Client, for synchronising your workflow across devices

Your can synchronise your workflow directory using smos-sync-client. This synchronisation works with arbitrary amounts of time between synchronisations, so it is perfect for taking your laptop onto an airplane.

A community sync-server has been set up at https://api.smos.online.

Reference

Arguments

Usage: smos-sync-client COMMAND [--config-file FILE_PATH] 
                        [--workflow-dir DIRECTORY_PATH] 
                        [--archive-dir DIRECTORY_PATH] 
                        [--projects-dir DIRECTORY_PATH] 
                        [--archived-projects-dir DIRECTORY_PATHPATH] 
                        [--log-level ARG] [--server-url ARG] [--username ARG] 
                        [--password ARG] [--password-file ARG] 
                        [--data-dir DIRECTORY] [--cache-dir DIRECTORY] 
                        [--session-path FILEPATH]

  
  Smos Sync Client version: 0.6.0
  
  Current Smos data format version: 2.0.0
  
  Oldest parseable Smos data format version: 0.0.0
  Newest parseable Smos data format version: 2.0.0
  Oldest supported Smos server API version: 0.0.0
  Newest supported Smos server API version: 0.4.0

Available options:
  -h,--help                Show this help text
  --config-file FILE_PATH  The config file to use
  --workflow-dir DIRECTORY_PATH
                           The workflow directory to use
  --archive-dir DIRECTORY_PATH
                           The archive directory to use
  --projects-dir DIRECTORY_PATH
                           The projects directory to use
  --archived-projects-dir DIRECTORY_PATHPATH
                           The archived projects directory to use
  --log-level ARG          The log level to use, options:
                           ["Debug","Info","Warn","Error"]
  --server-url ARG         The server to sync with
  --username ARG           The username to login to the sync server
  --password ARG           The password to login to the sync server WARNING: You
                           are trusting the system that you run this command on
                           if you pass in the password via command-line
                           arguments.
  --password-file ARG      The password file to login to the sync server
  --data-dir DIRECTORY     The directory to store state metadata in (not the
                           contents to be synced)
  --cache-dir DIRECTORY    The directory to cache state data in
  --session-path FILEPATH  The path to store the login session

Available commands:
  register                 Register at a sync server
  login                    Login at a sync server
  sync                     Sync with a sync server

Environment

Available environment variables:

  SMOS_ARCHIVED_PROJECTS_DIR
                         Archived projects directory
  SMOS_ARCHIVE_DIR
                         Archive directory
  SMOS_BACKUP_DIR        The directory to store backups in
                         when a sync conflict happens
  SMOS_CONFIG_FILE
                         Workflow directory
  SMOS_CONTENTS_DIR
                         The path to the directory to sync
  SMOS_EMPTY_DIRS        What to do with empty directories
                         after syncing
  SMOS_IGNORE_FILES
                         Which files to ignore
  SMOS_LOG_LEVEL         log level
  SMOS_METADATA_DATABASE
                         The path to the database of
                         metadata
  SMOS_PASSWORD          The password to sync with
  SMOS_PASSWORD_FILE
                         The password file to sync with
  SMOS_PROJECTS_DIR
                         Projects directory
  SMOS_SERVER_URL        The url of the server to sync with
  SMOS_SESSION_PATH
                         The path to the file in which to
                         store the auth session
  SMOS_USERNAME          The username to sync with
  SMOS_UUID_FILE         The path to the uuid file of the
                         server
  SMOS_WORKFLOW_DIR
                         Workflow directory

Configuration

# Configuration
workflow-dir: # optional
  # The workflow directory
  # or null
  <string>
archive-dir: # optional
  # The archive directory
  # or null
  <string>
projects-dir: # optional
  # The projects directory
  # or null
  <string>
archived-projects-dir: # optional
  # The archived projects directory
  # or null
  <string>
sync: # optional
  # Synchronisation configuration
  # or null
  # SyncConfiguration
  log-level: # optional
    # The minimal severity for log messages
    # or null
    def: LogLevel
    # The log level to use, options:
    # ["Debug","Info","Warn","Error"]
    <string>
  server-url: # optional
    # The url of the sync server. Example: api.smos.online
    # or null
    <string>
  data-dir: # optional
    # The directory to store state metadata in (not the contents to be synced)
    # or null
    <string>
  cache-dir: # optional
    # The directory to cache state data in
    # or null
    <string>
  contents-dir: # optional
    # The directory of the files to synchronise. By default this will be the workflow directory.
    # or null
    <string>
  uuid-file: # optional
    # The file in which to store the server uuid
    # or null
    <string>
  metadata-db: # optional
    # The file to store the metadata database in
    # or null
    <string>
  ignore-files: # optional
    # Which files to ignore
    # or null
    # nothing: Don't ignore any files
    # hidden: Ignore hidden files
    # one of
    [ nothing
    , hidden
    ]
  empty-directories: # optional
    # What to do with empty directories after syncing
    # or null
    # remove: Remove empty directories after syncing
    # keep: Keep empty directories after syncing
    # one of
    [ remove
    , keep
    ]
  username: # optional
    # The username to log into the sync server
    # or null
    <string>
  password: # optional
    # The password to log into the sync server. Note that putting the password in a config file in plaintext is not safe. Only use this for automation.
    # or null
    <string>
  password-file: # optional
    # The password file to log into the sync server.
    # or null
    <string>
  session-path: # optional
    # The file in which to store the login session cookie
    # or null
    <string>
  backup-dir: # optional
    # The directory to store backups in when a sync conflict happens
    # or null
    <string>