CLI dotfile

Set up a CLI dotfile

In case you are working with multiple projects and/or environments it becomes cumbersome to set tokens, hosts and other params.

You can use a dotfile to store these params conveniently and pass env and project to commands instead of using e.g. the LI_TOKEN environment variable.

The dotfile’s format is YAML (and thus JSON works as well). And the CLI will look for the dotfile in the current working directory.

Example: Multiple environments

.livingdocs-cli file in the root of your working directory:

environments:
  local:
    host: http://localhost:9000
    sourceFolder: ./project-config/local
    distFolder: ./sync/local
  staging:
    host: https://server-staging.example.dev
    token: staging-token
    sourceFolder: ./project-config/staging
    distFolder: ./sync/staging
  production:
    host: https://server-production.example.dev
    token: production-Token
    sourceFolder: ./project-config/production
    distFolder: ./sync/production
alias:
  st: staging

Note: it is recommended to add a production token with only read access (or simply dont add a prouction token at all). When publishing a new config you can supply a write token via --token argument.

How to use these configs in the terminal:

# with `env` param
npx livingdocs-cli project-config:download --env development

# in shorthand form
npx livingdocs-cli project-config:download -e development

# in shorthand form and also using an alias
npx livingdocs-cli project-config:download -e st

Example: Multiple projects & environments

.livingdocs-cli file in the root of your working directory:

projects:
  daily-planet:
    environments:
      ci:
        host: https://server-development.exampleA.dev
        token: dev-token
        sourceFolder: ./daily-planet/ci
        distFolder: ./sync/daily-planet/ci
      production:
        host: https://server-production.exampleA.dev
        token: production-Token
        sourceFolder: ./daily-planet/production
        distFolder: ./sync/daily-planet/production
  daily-prophet:
    environments:
      ci:
        host: https://server-development.exampleB.dev
        token: dev-token
        sourceFolder: ./daily-prophet/ci
        distFolder: ./sync/daily-prophet/ci
      production:
        host: https://server-production.exampleB.dev
        token: production-Token
        sourceFolder: ./daily-prophet/production
        distFolder: ./sync/daily-prophet/production
alias:
  prod: production

How to use these configs in the terminal:

# # with `project` and `env` params
npx livingdocs-cli project-config:download --project projectA --env production

# in shorthand form
npx livingdocs-cli project-config:download -p projectA -e production

# in shorthand form and using an alias
npx livingdocs-cli project-config:download -p projectA -e prod