7 releases (3 stable)
1.0.2 | Feb 16, 2024 |
---|---|
1.0.1 | Jul 12, 2023 |
1.0.0 | Jun 27, 2023 |
0.1.3 | Jun 26, 2023 |
#705 in Development tools
34 downloads per month
54KB
1K
SLoC
DSM - Dart SDK Manager
Simplified version manager for the Dart SDK. Inspired by fnm and nvm.
Installation
To quickly install dsm, you can use one of the following scripts
bash (linux/macos/windows)
$ curl -fsSL https://dsm-vm.vercel.app/install.sh | bash
The bash script works on windows too if you have git bash, since it comes with the associated utilities like uname
, curl
and others. The script accepts options like the -F
or --filename
flag to override what file to use (see the release section to see the available ones). Run the --help
flag to see available ones. For example
$ curl -fsSL https://dsm-vm.vercel.app/install.sh | bash -s -- --install-dir "path/to/file" -F "x86_64-unknown-linux-musl" --skip-shell
powershell (windows)
$ irm https://dsm-vm.vercel.app/install.ps1 | iex
You can specify the version by declaring a $v
variable beforehand and change the installation dir by a env variable named DSM_INSTALL
crates.io:
$ cargo install dsm
Locally
Clone the repo first. Then build it. You need the rust toolchain installed in your local environment. Get it from here. You also need git.
$ git clone https://github.com/Yakiyo/dsm
$ cd dsm
$ cargo build --release
Pre-built binaries
Pre-built binaries for some platforms are available in github releases section. You can download the file, rename it and add it to your system PATH.
After installation, setup your shell as mentioned in setup.
Setup
The dsm env <SHELL>
command is used for setting up shell. Currently powershell, bash. zsh, cmd and fish are supported.
Bash/Zsh
Add the following to your .bashrc
or .zshrc
file.
eval $(dsm env bash)
# or for zsh
eval $(dsm env zsh)
Fish
Create ~/.config/fish/conf.d/dsm.fish
and add the following.
dsm env fish | source
Powershell
Add the following to your powershell profile
dsm env powershell | Out-String | Invoke-Expression
You can view the path to your profile with the $PROFILE
variable.
Command Prompt
Create a startup script and add the following.
FOR /f "tokens=*" %i IN ('dsm env cmd') DO CALL %i
Usage
For installing a specific version
$ dsm install 3.0.3
You can use latest
to install the latest stable sdk version. Latest versions of dev/beta channels are also supported via latest/channel
or latest-channel
format.
$ dsm install latest-dev # or dsm install latest/dev
$ dsm install latest # same as latest-stable or latest/stable
Then use the use
command to activate it
$ dsm use 3.0.3
For creating aliases, use the alias
and unalias
commands
$ dsm alias 3.0.3 pinned
$ dsm unalias pinned
View all installed versions
$ dsm ls # or dsm list
For a list of all commands, do dsm --help
.
Contributing
Contributions are always welcome. You can start with any of the open issues to work on. For adding a new feature, please open an issue before working on it in order to discuss it. Feature commits are prefered so please open individual prs for individual features instead of doing several feature additions/changes in a single pull request. For any changes, add a changeset via pnpm changeset
if its applicable.
Make sure your code passes the CI and please merge and resolve conflicts from upstream before finalizing the pr.
If you cannot code yourself but would like to request a feature, please open an issue and I'll see what can be done.
Credits
A huge amount of code and inspiration has been taken from Schniz's fnm
. The project structure, some of the hacks and codes are based from it.
Author
dsm © Yakiyo. Authored and maintained by Yakiyo.
Released under MIT License
If you like this project, consider leaving a star ⭐ and sharing it with your friends and colleagues.
Dependencies
~16–27MB
~427K SLoC