DownloadCommand class
Command to download external resources as specified in the morpheme.yaml configuration.
This command processes download configurations from morpheme.yaml and downloads files from external URLs to specified local directories. It supports both regular files and compressed archives with automatic extraction.
Purpose:
- Automates downloading of external dependencies and assets
- Supports compressed file extraction (ZIP, TAR, etc.)
- Provides progress tracking for large downloads
- Validates download configurations before execution
Configuration Format (morpheme.yaml):
download:
  asset_pack:
    url: "https://example.com/assets.zip"
    dir: "assets/downloaded"
    compressed: true
  documentation:
    url: "https://example.com/docs.pdf"
    dir: "docs"
    compressed: false
Usage:
# Download all configured resources
morpheme download
# Download with custom morpheme.yaml
morpheme download --morpheme-yaml custom.yaml
Parameters:
- --morpheme-yaml: Path to custom morpheme.yaml file
Exceptions:
- Throws ConfigurationException if morpheme.yaml is invalid
- Throws NetworkExceptionif download fails
- Throws FileSystemException if file operations fail
Example Configuration:
download:
  external_library:
    url: "https://cdn.example.com/library.zip"
    dir: "lib/external"
    compressed: true
Constructors
Properties
- 
  aliases
  → List<String> 
- 
  Alternate names for this command.
  no setterinherited
- argParser → ArgParser
- 
  The argument parser for this command.
  no setterinherited
- argResults → ArgResults?
- 
  The parsed argument results for this command.
  no setterinherited
- category → String
- 
  The command's category.
  no setteroverride
- description → String
- 
  A description of this command, included in usage.
  no setteroverride
- globalResults → ArgResults?
- 
  The parsed global argument results.
  no setterinherited
- hashCode → int
- 
  The hash code for this object.
  no setterinherited
- 
  Whether or not this command should be hidden from help listings.
  no setterinherited
- invocation → String
- 
  A single-line template for how to invoke this command (e.g. "pub getpackage").no setterinherited
- name → String
- 
  The name of this command.
  no setteroverride
- parent → Command?
- 
  The command's parent command, if this is a subcommand.
  no setterinherited
- runner → CommandRunner?
- 
  The command runner for this command.
  no setterinherited
- runtimeType → Type
- 
  A representation of the runtime type of the object.
  no setterinherited
- 
  subcommands
  → Map<String, Command> 
- 
  An unmodifiable view of all sublevel commands of this command.
  no setterinherited
- 
  suggestionAliases
  → List<String> 
- 
  Alternate non-functional names for this command.
  no setterinherited
- summary → String
- 
  A short description of this command, included in parent's
CommandRunner.usage.
  no setterinherited
- takesArguments → bool
- 
  Whether or not this command takes positional arguments in addition to
options.
  no setterinherited
- usage → String
- 
  Generates a string displaying usage information for this command.
  no setterinherited
- 
  An optional footer for usage.
  no setterinherited
Methods
- 
  addSubcommand(Command command) → void 
- 
  Adds Command as a subcommand of this.
  inherited
- 
  noSuchMethod(Invocation invocation) → dynamic 
- 
  Invoked when a nonexistent method or property is accessed.
  inherited
- 
  printUsage() → void 
- 
  Prints the usage information for this command.
  inherited
- 
  run() → void 
- 
  Runs this command.
  override
- 
  toString() → String 
- 
  A string representation of this object.
  inherited
- 
  usageException(String message) → Never 
- 
  Throws a UsageException with message.inherited
Operators
- 
  operator ==(Object other) → bool 
- 
  The equality operator.
  inherited