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
.
--config-file Path to the configuration file
register Register at a sync server
login Login at a sync server
sync (default) Sync with a sync server
--workflow-dir The workflow directory
--contents-dir The directory to synchronise
--data-dir The directory to store state data in
--uuid-file The file to store the server uuid in default: "server-uuid.json"
--metadata-db The file to store the synchronisation metadata database in default: "sync-metadata.sqlite3"
--backup-dir The directory to store backups in when a sync conflict happens default: "conflict-backups"
--ignore-nothing Do not ignore hidden files
--ignore-hidden-files Ignore hidden files
--remove-empty-dirs Remove empty directories after syncing
--keep-empty-dirs Keep empty directories after syncing
--server-url The server to sync with example: https://api.smos.online
--log-level Minimal severity of log messages default: Info examples: "Debug", "Info", "Warn", "Error"
--username The username to login to the sync server
--password The password to login to the sync server
--password-file The password to login to the sync server
--cache-dir The directory to cache state data in
--session-path The path to store the login session default: "sync-session.dat"
SMOS_CONFIG_FILE FILE_PATH Path to the configuration file
SMOS_WORKFLOW_DIR DIRECTORY_PATH The workflow directory
SMOS_SYNC_CLIENT_CONTENTS_DIR DIRECTORY_PATH The directory to synchronise
SMOS_SYNC_CLIENT_DATA_DIR DIRECTORY_PATH The directory to store state data in
SMOS_SYNC_CLIENT_UUID_FILE FILE_PATH The file to store the server uuid in default: "server-uuid.json"
SMOS_SYNC_CLIENT_METADATA_DB FILE_PATH The file to store the synchronisation metadata database in default: "sync-metadata.sqlite3"
SMOS_SYNC_CLIENT_BACKUP_DIR FILE_PATH The directory to store backups in when a sync conflict happens default: "conflict-backups"
SMOS_SYNC_CLIENT_IGNORE_FILES IGNORE_FILES Which files to ignore examples: "no", "nothing", "hidden"
SMOS_SYNC_CLIENT_EMPTY_DIRS EMPTY_DIR What to do with empty directories after syncing
SMOS_SYNC_CLIENT_SERVER_URL URL The server to sync with example: https://api.smos.online
SMOS_SYNC_CLIENT_LOG_LEVEL LOG_LEVEL Minimal severity of log messages default: Info examples: "Debug", "Info", "Warn", "Error"
SMOS_SYNC_CLIENT_USERNAME USERNAME The username to login to the sync server
SMOS_SYNC_CLIENT_PASSWORD PASSWORD The password to login to the sync server
SMOS_SYNC_CLIENT_PASSWORD_FILE FILE_PATH The password to login to the sync server
SMOS_SYNC_CLIENT_CACHE_DIR DIRECTORY_PATH The directory to cache state data in
SMOS_SYNC_CLIENT_SESSION_PATH FILE_PATH The path to store the login session default: "sync-session.dat"
The workflow directory
workflow-dir:
# or null
<string>
The directory to synchronise
sync.contents-dir:
# or null
<string>
The directory to store state data in
sync.data-dir:
# or null
<string>
The file to store the server uuid in
default: "server-uuid.json"
sync.uuid-file:
# or null
<string>
The file to store the synchronisation metadata database in
default: "sync-metadata.sqlite3"
sync.metadata-db:
# or null
<string>
The directory to store backups in when a sync conflict happens
default: "conflict-backups"
sync.backup-dir:
# or null
<string>
Which files to ignore
sync.ignore-files:
# or null
# nothing: Don't ignore any files
# hidden: Ignore hidden files
# one of
[ nothing
, hidden
]
What to do with empty directories after syncing
sync.empty-directories:
# or null
# remove: Remove empty directories after syncing
# keep: Keep empty directories after syncing
# one of
[ remove
, keep
]
The server to sync with
example: https://api.smos.online
sync.server-url:
# or null
<string>
Minimal severity of log messages
default: Info
examples: "Debug", "Info", "Warn", "Error"
sync.log-level:
# or null
def: LogLevel
# The log level to use, options:
# ["Debug","Info","Warn","Error"]
<string>
The username to login to the sync server
sync.username:
# or null
<string>
The password to login to the sync server
sync.password:
# or null
<string>
The password to login to the sync server
sync.password-file:
# or null
<string>
The directory to cache state data in
sync.cache-dir:
# or null
<string>
The path to store the login session
default: "sync-session.dat"
sync.session-path:
# or null
<string>
Usage: smos-sync-client [--config-file FILE_PATH] [COMMAND] --server-url URL [--log-level LOG_LEVEL] [--username USERNAME] [--password PASSWORD | --password-file FILE_PATH] [--cache-dir DIRECTORY_PATH] [--session-path FILE_PATH]
All settings:
Show this help text
switch: -h|--help
Output version information
switch: --version
Path to the configuration file
option: --config-file FILE_PATH
env: SMOS_CONFIG_FILE FILE_PATH
The server to sync with
option: --server-url URL
env: SMOS_SYNC_CLIENT_SERVER_URL URL
config:
sync.server-url: # or null
<string>
example: https://api.smos.online
Minimal severity of log messages
option: --log-level LOG_LEVEL
env: SMOS_SYNC_CLIENT_LOG_LEVEL LOG_LEVEL
config:
sync.log-level: # or null
def: LogLevel
# The log level to use, options:
# ["Debug","Info","Warn","Error"]
<string>
default: Info
examples: "Debug", "Info", "Warn", "Error"
The username to login to the sync server
option: --username USERNAME
env: SMOS_SYNC_CLIENT_USERNAME USERNAME
config:
sync.username: # or null
<string>
The password to login to the sync server
option: --password PASSWORD
option: --password-file FILE_PATH
env: SMOS_SYNC_CLIENT_PASSWORD PASSWORD
env: SMOS_SYNC_CLIENT_PASSWORD_FILE FILE_PATH
config:
sync.password: # or null
<string>
config:
sync.password-file: # or null
<string>
The directory to cache state data in
option: --cache-dir DIRECTORY_PATH
env: SMOS_SYNC_CLIENT_CACHE_DIR DIRECTORY_PATH
config:
sync.cache-dir: # or null
<string>
The path to store the login session
option: --session-path FILE_PATH
env: SMOS_SYNC_CLIENT_SESSION_PATH FILE_PATH
config:
sync.session-path: # or null
<string>
default: "sync-session.dat"
All commands:
Register at a sync server
command: register
Login at a sync server
command: login
Sync with a sync server
command: sync (default)
The workflow directory
option: --workflow-dir DIRECTORY_PATH
env: SMOS_WORKFLOW_DIR DIRECTORY_PATH
config:
workflow-dir: # or null
<string>
The directory to synchronise
option: --contents-dir DIRECTORY_PATH
env: SMOS_SYNC_CLIENT_CONTENTS_DIR DIRECTORY_PATH
config:
sync.contents-dir: # or null
<string>
The directory to store state data in
option: --data-dir DIRECTORY_PATH
env: SMOS_SYNC_CLIENT_DATA_DIR DIRECTORY_PATH
config:
sync.data-dir: # or null
<string>
The file to store the server uuid in
option: --uuid-file FILE_PATH
env: SMOS_SYNC_CLIENT_UUID_FILE FILE_PATH
config:
sync.uuid-file: # or null
<string>
default: "server-uuid.json"
The file to store the synchronisation metadata database in
option: --metadata-db FILE_PATH
env: SMOS_SYNC_CLIENT_METADATA_DB FILE_PATH
config:
sync.metadata-db: # or null
<string>
default: "sync-metadata.sqlite3"
The directory to store backups in when a sync conflict happens
option: --backup-dir FILE_PATH
env: SMOS_SYNC_CLIENT_BACKUP_DIR FILE_PATH
config:
sync.backup-dir: # or null
<string>
default: "conflict-backups"
Do not ignore hidden files
switch: --ignore-nothing
Ignore hidden files
switch: --ignore-hidden-files
Which files to ignore
env: SMOS_SYNC_CLIENT_IGNORE_FILES IGNORE_FILES
examples: "no", "nothing", "hidden"
config:
sync.ignore-files: # or null
# nothing: Don't ignore any files
# hidden: Ignore hidden files
# one of
[ nothing
, hidden
]
default: IgnoreHiddenFiles
Remove empty directories after syncing
switch: --remove-empty-dirs
Keep empty directories after syncing
switch: --keep-empty-dirs
What to do with empty directories after syncing
env: SMOS_SYNC_CLIENT_EMPTY_DIRS EMPTY_DIR
config:
sync.empty-directories: # or null
# remove: Remove empty directories after syncing
# keep: Keep empty directories after syncing
# one of
[ remove
, keep
]
default: KeepEmptyDirs
Options:
-h|--help Show this help text
--version Output version information
--config-file Path to the configuration file
register Register at a sync server
login Login at a sync server
sync (default) Sync with a sync server
--workflow-dir The workflow directory
--contents-dir The directory to synchronise
--data-dir The directory to store state data in
--uuid-file The file to store the server uuid in default: "server-uuid.json"
--metadata-db The file to store the synchronisation metadata database in default: "sync-metadata.sqlite3"
--backup-dir The directory to store backups in when a sync conflict happens default: "conflict-backups"
--ignore-nothing Do not ignore hidden files
--ignore-hidden-files Ignore hidden files
--remove-empty-dirs Remove empty directories after syncing
--keep-empty-dirs Keep empty directories after syncing
--server-url The server to sync with example: https://api.smos.online
--log-level Minimal severity of log messages default: Info examples: "Debug", "Info", "Warn", "Error"
--username The username to login to the sync server
--password The password to login to the sync server
--password-file The password to login to the sync server
--cache-dir The directory to cache state data in
--session-path The path to store the login session default: "sync-session.dat"
Environment Variables:
SMOS_CONFIG_FILE FILE_PATH Path to the configuration file
SMOS_WORKFLOW_DIR DIRECTORY_PATH The workflow directory
SMOS_SYNC_CLIENT_CONTENTS_DIR DIRECTORY_PATH The directory to synchronise
SMOS_SYNC_CLIENT_DATA_DIR DIRECTORY_PATH The directory to store state data in
SMOS_SYNC_CLIENT_UUID_FILE FILE_PATH The file to store the server uuid in default: "server-uuid.json"
SMOS_SYNC_CLIENT_METADATA_DB FILE_PATH The file to store the synchronisation metadata database in default: "sync-metadata.sqlite3"
SMOS_SYNC_CLIENT_BACKUP_DIR FILE_PATH The directory to store backups in when a sync conflict happens default: "conflict-backups"
SMOS_SYNC_CLIENT_IGNORE_FILES IGNORE_FILES Which files to ignore examples: "no", "nothing", "hidden"
SMOS_SYNC_CLIENT_EMPTY_DIRS EMPTY_DIR What to do with empty directories after syncing
SMOS_SYNC_CLIENT_SERVER_URL URL The server to sync with example: https://api.smos.online
SMOS_SYNC_CLIENT_LOG_LEVEL LOG_LEVEL Minimal severity of log messages default: Info examples: "Debug", "Info", "Warn", "Error"
SMOS_SYNC_CLIENT_USERNAME USERNAME The username to login to the sync server
SMOS_SYNC_CLIENT_PASSWORD PASSWORD The password to login to the sync server
SMOS_SYNC_CLIENT_PASSWORD_FILE FILE_PATH The password to login to the sync server
SMOS_SYNC_CLIENT_CACHE_DIR DIRECTORY_PATH The directory to cache state data in
SMOS_SYNC_CLIENT_SESSION_PATH FILE_PATH The path to store the login session default: "sync-session.dat"
Configuration Values:
The workflow directory
workflow-dir:
# or null
<string>
The directory to synchronise
sync.contents-dir:
# or null
<string>
The directory to store state data in
sync.data-dir:
# or null
<string>
The file to store the server uuid in
default: "server-uuid.json"
sync.uuid-file:
# or null
<string>
The file to store the synchronisation metadata database in
default: "sync-metadata.sqlite3"
sync.metadata-db:
# or null
<string>
The directory to store backups in when a sync conflict happens
default: "conflict-backups"
sync.backup-dir:
# or null
<string>
Which files to ignore
sync.ignore-files:
# or null
# nothing: Don't ignore any files
# hidden: Ignore hidden files
# one of
[ nothing
, hidden
]
What to do with empty directories after syncing
sync.empty-directories:
# or null
# remove: Remove empty directories after syncing
# keep: Keep empty directories after syncing
# one of
[ remove
, keep
]
The server to sync with
example: https://api.smos.online
sync.server-url:
# or null
<string>
Minimal severity of log messages
default: Info
examples: "Debug", "Info", "Warn", "Error"
sync.log-level:
# or null
def: LogLevel
# The log level to use, options:
# ["Debug","Info","Warn","Error"]
<string>
The username to login to the sync server
sync.username:
# or null
<string>
The password to login to the sync server
sync.password:
# or null
<string>
The password to login to the sync server
sync.password-file:
# or null
<string>
The directory to cache state data in
sync.cache-dir:
# or null
<string>
The path to store the login session
default: "sync-session.dat"
sync.session-path:
# or null
<string>