A command-line tool for checking and installing software dependencies with customizable installers and cross-platform support.
npm package url: https://www.npmjs.com/package/readymate?activeTab=readme
- Check if specific software is installed on your system
- Install missing dependencies using various package managers
- Support multiple operating systems (macOS, Windows, Linux)
- Customizable installation commands per operating system
- Root privilege support for Linux installations
- Interactive installation confirmation with auto-approve option
- JSON configuration file support for installation settings
Install globally using npm:
npm install -g readymate
ReadyMate uses a JSON configuration file (ready_mate_config.json
) to define installation settings. You can specify different installation commands for different operating systems.
Example configuration:
{
"clang-tidy": {
"macos": {
"support": true,
"installer": "brew",
"cmd": "install llvm"
},
"windows": {
"support": true,
"installer": "choco",
"cmd": "install llvm"
},
"linux": {
"support": true,
"installer": "apt-get",
"cmd": "install clang-tidy"
"root": true
}
}
}
Configuration file structure:
- Each software package is defined by a top-level key
- Each package can have OS-specific configurations (
macos
,windows
,linux
) - OS-specific configuration options:
support
: Boolean indicating if the software is supported on this OS (default: true)installer
: The package manager to usecmd
: The installation command (including the package name)root
: (Linux only) Boolean indicating if sudo is required
readymate [options]
Options:
-c, --config-file <path>
: Path to configuration file (defaults to ready_mate_config.json in current directory)-y, --yes
: Skip confirmation steps-v, --version
: Output version number-h, --help
: Display help information
Examples:
# Use default config file in current directory
readymate
# Use custom config file
readymate -c /path/to/config.json
# Auto-approve all installations
readymate -y
const { check } = require("readymate");
// Check and install software using config file
await check(
"/path/to/config.json", // config file path (optional)
true // auto-approve all (optional)
);
- macOS (darwin)
- Windows (win32)
- Linux
- Other platforms (will use default installation commands)
- Node.js >= 14
- npm >= 6
MIT
Contributions are welcome! Please feel free to submit a Pull Request.