61 lines
3.0 KiB
Markdown
61 lines
3.0 KiB
Markdown
# os.download Module
|
|
|
|
### `download(url, dest, min_size_kb)`
|
|
|
|
Download a file from URL to destination using the curl command.
|
|
|
|
- **Description**: Downloads a file from the given `url`. If `dest` is a directory, the filename is derived from the URL. If `dest` is a file path, it is used directly. Requires the `curl` command to be available. Halts script execution on download or file writing errors, or if the downloaded file size is less than `min_size_kb`. Returns the destination path.
|
|
- **Returns**: `String` - The path where the file was downloaded.
|
|
- **Arguments**:
|
|
- `url`: `String` - The URL of the file to download.
|
|
- `dest`: `String` - The destination path (directory or file).
|
|
- `min_size_kb`: `Integer` - The minimum expected size of the downloaded file in kilobytes.
|
|
|
|
```rhai
|
|
let download_url = "https://example.com/archive.zip";
|
|
let download_dest_dir = "/tmp/downloads";
|
|
print(`Downloading ${download_url} to ${download_dest_dir}...`);
|
|
let downloaded_file_path = os::download(download_url, download_dest_dir, 50); // Halts on error
|
|
print(`Downloaded to: ${downloaded_file_path}`);
|
|
```
|
|
|
|
---
|
|
|
|
### `download_file(url, dest, min_size_kb)`
|
|
|
|
Download a file from URL to a specific file destination using the curl command.
|
|
|
|
- **Description**: Downloads a file from the given `url` directly to the specified file `dest`. Requires the `curl` command. Halts script execution on download or file writing errors, or if the downloaded file size is less than `min_size_kb`. Returns the destination path.
|
|
- **Returns**: `String` - The path where the file was downloaded.
|
|
- **Arguments**:
|
|
- `url`: `String` - The URL of the file to download.
|
|
- `dest`: `String` - The full path where the file should be saved.
|
|
- `min_size_kb`: `Integer` - The minimum expected size of the downloaded file in kilobytes.
|
|
|
|
```rhai
|
|
let data_url = "https://example.com/dataset.tar.gz";
|
|
let local_path = "/opt/data/dataset.tar.gz";
|
|
print(`Downloading ${data_url} to ${local_path}...`);
|
|
os::download_file(data_url, local_path, 1024); // Halts on error
|
|
print(`Downloaded dataset to: ${local_path}`);
|
|
```
|
|
|
|
---
|
|
|
|
### `download_install(url, min_size_kb)`
|
|
|
|
Download a file and install it if it\'s a supported package format.
|
|
|
|
- **Description**: Downloads a file from the given `url` to a temporary location and then attempts to install it using the appropriate system package manager if the file format is supported (e.g., `.deb` on Ubuntu, `.pkg` or `.dmg` on MacOS). Requires the `curl` command and the system package manager. Halts script execution on download, installation, or file size errors. Returns a success message.
|
|
- **Returns**: `String` - A success message upon successful download and installation attempt.
|
|
- **Arguments**:
|
|
- `url`: `String` - The URL of the package file to download and install.
|
|
- `min_size_kb`: `Integer` - The minimum expected size of the downloaded file in kilobytes.
|
|
|
|
```rhai
|
|
let package_url = "https://example.com/mytool.deb";
|
|
print(`Downloading and installing ${package_url}...`);
|
|
os::download_install(package_url, 300); // Halts on error
|
|
print("Installation attempt finished.");
|
|
```
|