DesignMint
  • DesignMint Designer Docs
  • DesignMint Medusa Monorepo Setup
  • admin
    • integration-tests
      • Integration Tests
    • src
      • Admin Customizations
      • Custom API Routes
      • Custom scheduled jobs
      • Module Links
      • Custom Module
      • Custom CLI Script
      • Custom subscribers
      • Custom Workflows
  • storefront
  • DesignMint License Notice
Powered by GitBook
On this page
  • How to Create a Custom CLI Script?
  • How to Run Custom CLI Script?
  • Custom CLI Script Arguments
  1. admin
  2. src

Custom CLI Script

PreviousCustom ModuleNextCustom subscribers

Last updated 18 days ago

A custom CLI script is a function to execute through Medusa's CLI tool. This is useful when creating custom Medusa tooling to run as a CLI tool.

Learn more about custom CLI scripts in .

How to Create a Custom CLI Script?

To create a custom CLI script, create a TypeScript or JavaScript file under the src/scripts directory. The file must default export a function.

For example, create the file src/scripts/my-script.ts with the following content:

import { 
  ExecArgs,
} from "@medusajs/framework/types"

export default async function myScript ({
  container
}: ExecArgs) {
  const productModuleService = container.resolve("product")

  const [, count] = await productModuleService.listAndCountProducts()

  console.log(`You have ${count} product(s)`)
}

The function receives as a parameter an object having a container property, which is an instance of the Medusa Container. Use it to resolve resources in your Medusa application.


How to Run Custom CLI Script?

To run the custom CLI script, run the exec command:

npx medusa exec ./src/scripts/my-script.ts

Custom CLI Script Arguments

Your script can accept arguments from the command line. Arguments are passed to the function's object parameter in the args property.

For example:

import { ExecArgs } from "@medusajs/framework/types"

export default async function myScript ({
  args
}: ExecArgs) {
  console.log(`The arguments you passed: ${args}`)
}

Then, pass the arguments in the exec command after the file path:

npx medusa exec ./src/scripts/my-script.ts arg1 arg2
this documentation