mirror of
https://github.com/dexoron/dcr.git
synced 2026-10-21 10:58:29 +00:00
feat: add download mirrors and drop legacy install scripts
Introduce `--mirror` and `DCRUP_MIRROR` so `dcrup` can fetch prebuilt binaries from multiple CDNs. Default `auto` tries cf → gh → sf → ya and uses the first successful download. - dcrup.sh / dcrup.ps1: mirror chain, CLI flag, env override - remove install.sh / install.ps1 / install_bsd.sh (superseded by dcrup) - GitHub Actions: upload releases to Cloudflare R2 next to Yandex S3 - docs: README, FAQ, changelog, installation, env vars, contributing
This commit is contained in:
@@ -11,7 +11,8 @@ sidebar_label: Introduction
|
||||
# Installation (dcrup)
|
||||
curl -fsSL https://sh.dcr-tool.ru | sh -s -- self-install
|
||||
export PATH="$HOME/.dcr/bin:$PATH"
|
||||
dcrup install stable
|
||||
dcrup install stable # auto: cf → gh → sf → ya
|
||||
# dcrup install stable --mirror cf # CloudFlare / GitHub / SourceForge / Yandex
|
||||
|
||||
# Create a project
|
||||
dcr new my-app
|
||||
|
||||
@@ -4,6 +4,12 @@ sidebar_label: Changelog
|
||||
|
||||
# Changelog
|
||||
|
||||
## Unreleased
|
||||
|
||||
- **Download mirrors in `dcrup`** — `--mirror auto|cf|gh|sf|ya` and `DCRUP_MIRROR`.
|
||||
Default `auto` tries **cf → gh → sf → ya** (CloudFlare CDN, GitHub, SourceForge, Yandex CDN).
|
||||
- **Removed `install.sh` / `install.ps1` / `install_bsd.sh`** — superseded by `dcrup`.
|
||||
|
||||
## 0.8.5 (2026-08-08)
|
||||
|
||||
- **`package.dcr-version`** — optional CLI version pin in `dcr.toml`.
|
||||
|
||||
@@ -8,6 +8,7 @@ sidebar_label: Contributing
|
||||
|
||||
```bash
|
||||
git clone https://github.com/dexoron/dcr
|
||||
# or a source mirror: GitVerse / SourceCraft / SourceForge / GitLab (see README)
|
||||
cd dcr
|
||||
cargo build
|
||||
```
|
||||
|
||||
@@ -61,6 +61,15 @@ Use `kind = "flat-bin"` (NASM `-f bin`) and optional `[archive]` for a FAT disk
|
||||
|
||||
See [OS-dev recipe](/docs/recipes/os-flat-bin-archive).
|
||||
|
||||
## How do I choose a download mirror?
|
||||
|
||||
`dcrup install` uses `--mirror auto` by default and tries **cf → gh → sf → ya**.
|
||||
|
||||
```bash
|
||||
dcrup install stable --mirror cf
|
||||
export DCRUP_MIRROR=ya
|
||||
```
|
||||
|
||||
## Lock file
|
||||
|
||||
`dcr.lock` is created during builds (`dcr build`) when registry dependencies are present. To force an update — delete `dcr.lock` and run `dcr build`.
|
||||
|
||||
@@ -45,10 +45,12 @@ After `self-install`, the command is **`dcrup`** (no `.sh` / `.ps1`): shims live
|
||||
### Common dcrup commands
|
||||
|
||||
```sh
|
||||
dcrup install stable # latest stable prebuilt
|
||||
dcrup install stable # latest stable prebuilt (auto: cf → gh → sf → ya)
|
||||
dcrup install 0.8.2 # pin → 0.8.2@stable
|
||||
dcrup install 0.8.2@dev
|
||||
dcrup install stable --libc musl # Linux: musl asset (default: gnu)
|
||||
dcrup install stable --mirror cf # CloudFlare CDN
|
||||
dcrup install stable --mirror ya # Yandex CDN (RU fallback)
|
||||
dcrup install stable --build # cargo build --features archive
|
||||
dcrup install night # always build from branch dev HEAD
|
||||
dcrup default 0.8.2
|
||||
@@ -60,6 +62,22 @@ dcrup which
|
||||
|
||||
Layout: `~/.dcr/toolchains/<id>/dcr` and `~/.dcr/bin/dcr` → active version.
|
||||
|
||||
### Download mirrors
|
||||
|
||||
Prebuilt installs try **cf → gh → sf → ya** unless you pin a host.
|
||||
|
||||
| Code | URL | Notes |
|
||||
|------|-----|--------|
|
||||
| `cf` | `https://cdn-global.dcr-tool.ru/<tag>/<asset>` | CloudFlare CDN (worldwide) |
|
||||
| `gh` | `https://github.com/dexoron/dcr/releases/download/<tag>/<asset>` | GitHub Releases |
|
||||
| `sf` | `https://sourceforge.net/projects/dcr-tool/files/<tag>/<asset>/download` | SourceForge |
|
||||
| `ya` | `https://cdn-ru.dcr-tool.ru/<tag>/<asset>` | Yandex CDN (RU fallback) |
|
||||
|
||||
```sh
|
||||
dcrup install stable --mirror auto # default
|
||||
export DCRUP_MIRROR=cf # persist for this shell
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Arch Linux (AUR)
|
||||
|
||||
@@ -57,3 +57,27 @@ export DCR_INDEX_PATH=/custom/path/index.json
|
||||
```
|
||||
|
||||
Default: `~/.dcr/index.json`.
|
||||
|
||||
## DCRUP_MIRROR
|
||||
|
||||
Download mirror for `dcrup` (prebuilt binaries only).
|
||||
|
||||
```bash
|
||||
export DCRUP_MIRROR=auto # cf → gh → sf → ya (default)
|
||||
export DCRUP_MIRROR=cf # CloudFlare CDN
|
||||
export DCRUP_MIRROR=gh # GitHub Releases
|
||||
export DCRUP_MIRROR=sf # SourceForge
|
||||
export DCRUP_MIRROR=ya # Yandex CDN (RU fallback)
|
||||
```
|
||||
|
||||
CLI override: `dcrup install stable --mirror cf`.
|
||||
|
||||
## DCRUP_HOME / DCRUP_BIN / DCRUP_REPO
|
||||
|
||||
Installer layout and source clone URL:
|
||||
|
||||
```bash
|
||||
export DCRUP_HOME=~/.dcr
|
||||
export DCRUP_BIN=~/.dcr/bin
|
||||
export DCRUP_REPO=https://github.com/dexoron/dcr
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user