Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qri-io/qriswitch
A node CLI for quickly switching qri profiles
https://github.com/qri-io/qriswitch
Last synced: 6 days ago
JSON representation
A node CLI for quickly switching qri profiles
- Host: GitHub
- URL: https://github.com/qri-io/qriswitch
- Owner: qri-io
- License: gpl-3.0
- Created: 2020-02-25T15:29:47.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-02-13T02:27:20.000Z (over 2 years ago)
- Last Synced: 2024-04-25T00:19:21.296Z (7 months ago)
- Language: JavaScript
- Size: 188 KB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# qriswitch
A node CLI for switching qri profile environment variables. Tested on MacOS Catalina.
## Background
Qri makes use two hidden directories, `.qri` and `.ipfs`, located in the user's home directory. Together, these define the qri user's identity and collection of datasets.
Switching to a different user identity is possible if the user sets `QRI_PATH` and `IPFS_PATH` to different directories and either running Qri Desktop or running `qri setup` in qri CLI.
qriswitch allows for quickly changing these two environment variables to switch between multiple profiles.
## Getting Started
Have nodejs and qri installed, then
- Clone this repo
- Install dependencies `yarn`
- Install as a global command `npm install -g`
- The command `qriswitch` should be available in your terminal## Source qriswitch's env variables file in your shell
qriswitch sets environment variables in a file `$HOME/.qriswitch/.env`. This file should be sourced in your shell environment:
For me, it's `.bash_profile`, but add this wherever your shell gets its settings.
```
source ~/.qriswitch/.env
```## Creating a New Profile
If you create a new profile using qriswitch and then open Qri Desktop, you'll have a local-only peername.
You will need to run `qri registry signup` to register this qri peer with qri.cloud before publishing.## Switch!
Run `qriswitch`, you'll see a prompt to choose from existing profiles, use the default (home directory) profile, or create a new profile
```
current profile: chriswhong_dev
? Choose a Profile (Use arrow keys)
❯ chriswhong_dev
──────────────
use default qri profile
create a new profile
```If you're using Qri CLI:
- make sure Qri Desktop is not running
- after switching, the current shell still thinks the previous environment variables are still in effect. Either run `source ~/.qriswitch/.env` or open a new terminal window to use the new profile.If you're using Qri Desktop:
- make sure it is not running when you switch## Profiles
Profiles are just hidden directories in `$HOME/.qriswitch` containing `.ipfs` and `.qri` directories.
For example, if you create a profile named `myusername`, qriwitch will create:
- `$HOME/.qriswitch/myusername/.qri`
- `$HOME/.qriswitch/myusername/.ipfs`Creating a profile only makes these directories and sets the environment variables to
## Environment Variables
`QRI_PATH` and `IPFS_PATH` are used to override the default paths for the qri and ipfs directories (`$HOME/.qri` and `$HOME/.ipfs`, respectively)
When you choose a profile, qriswitch does two things:
- exports both environment variables in `$HOME/.qriswitch/.env`, which makes them available in your shell (see above for how to 'source' this file)
- uses `launchctl setenv` to make both environment variables available to Qri DesktopThis has never been tested in Windows or Linux. PRs welcome for expansion to other environments.