cli/self: Stop printing information about the node

To get to a point of separating the users' identity from the node, then the `rad
self` command should not display information related to the node so prominently.

The relation between `rad` and `radicle-node` is really similar to that between
`rad` and SSH Agent. They communicate via socket. So, when this connection is
successful, it is printed, but not more.

There may be some re-learning for users here, but it is worth the improvement.

Note that the information being removed here is available via `rad node status`
(see previous commit).
This commit is contained in:
Lorenz Leutgeb 2025-08-27 00:09:37 +02:00 committed by Fintan Halpenny
parent e1af550a09
commit f00d1d6743
6 changed files with 36 additions and 57 deletions

View File

@ -7,7 +7,7 @@ SSH_KEY="$(rad path)/keys/radicle"
main() {
version="$(build/version)"
nid="$(rad self --nid)"
nid="$(rad self --did | cut -d: -f3-)"
rad_url="$(rad . | sed s/rad:/rad:\\/\\//)"
rad_remote="$rad_url/$nid"

View File

@ -5,7 +5,7 @@ device and node.
$ rad self
Alias alice
DID did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
└╴Node ID (NID) z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
Node not running
SSH not running
├╴Key (hash) SHA256:UIedaL6Cxm6OUErh9GQUzzglSk7VpQlVTI1TAFB/HWA
└╴Key (full) ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHahWSBEpuT1ESZbynOmBNkLBSnR32Ar4woZqSV2YNH1
@ -26,6 +26,7 @@ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```
$ rad self --nid
! Warning: The option `--nid` is deprecated, please use `rad node status` instead.
z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
```

View File

@ -1,7 +1,8 @@
use std::ffi::OsString;
use radicle::crypto::ssh;
use radicle::Profile;
use radicle::node::Handle as _;
use radicle::{Node, Profile};
use crate::terminal as term;
use crate::terminal::args::{Args, Error, Help};
@ -20,7 +21,6 @@ Options
--did Show your DID
--alias Show your Node alias
--nid Show your Node ID (NID)
--home Show your Radicle home
--config Show the location of your configuration file
--ssh-key Show your public key in OpenSSH format
@ -100,7 +100,15 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
term::print(profile.config.alias());
}
Show::NodeId => {
term::print(profile.id());
term::warning(
"The option `--nid` is deprecated, please use `rad node status` instead.",
);
term::print(
Node::new(profile.socket())
.nid()
.ok()
.unwrap_or_else(|| *profile.id()),
);
}
Show::Did => {
term::print(profile.did());
@ -137,11 +145,13 @@ fn all(profile: &Profile) -> anyhow::Result<()> {
term::format::tertiary(did).into(),
]);
let node_id = profile.id();
table.push([
term::format::style("└╴Node ID (NID)").into(),
term::format::tertiary(node_id).into(),
]);
let socket = profile.socket();
let node = if Node::new(&socket).is_running() {
term::format::positive(format!("running ({})", socket.display()))
} else {
term::format::negative("not running".to_string())
};
table.push([term::format::style("Node").into(), node.to_string().into()]);
let ssh_agent = match ssh::agent::Agent::connect() {
Ok(c) => term::format::positive(format!(
@ -158,13 +168,14 @@ fn all(profile: &Profile) -> anyhow::Result<()> {
ssh_agent.to_string().into(),
]);
let ssh_short = ssh::fmt::fingerprint(node_id);
let id = profile.id();
let ssh_short = ssh::fmt::fingerprint(id);
table.push([
term::format::style("├╴Key (hash)").into(),
term::format::tertiary(ssh_short).into(),
]);
let ssh_long = ssh::fmt::key(node_id);
let ssh_long = ssh::fmt::key(id);
table.push([
term::format::style("└╴Key (full)").into(),
term::format::tertiary(ssh_long).into(),

View File

@ -26,7 +26,7 @@ Options
--repo <rid> The repository to watch (default: `rad .`)
--node <nid> The namespace under which this reference exists
(default: `rad self --nid`)
(default: NID of the profile)
-r, --ref <ref> The fully-qualified Git reference (branch, tag, etc.) to watch,
eg. 'refs/heads/master'
-t, --target <oid> The target OID (commit hash) that when reached,

View File

@ -115,7 +115,7 @@ For example, to connect to a community node, you can run:
The argument given to *connect* is called a node _address_. It is composed of
a Node ID (NID), followed by an *@* symbol, and the _host_ name and _port_.
You can display your NID with *rad self --nid*.
You can display your NID with *rad node status*.
To make these connections permanent, such that they are always tried on
startup, add the addresses to your configuration file at

View File

@ -1,33 +0,0 @@
#!/bin/sh
set -e
if [ "$#" -lt 2 ]; then
printf "usage: %s <rid> <nid>\n" "$(basename "$0")"
exit 1
fi
RAD_HOME=${RAD_HOME:-"$HOME/.radicle"}
REPO=$(echo "$1" | sed 's/rad://')
REMOTE=$2
if [ "$REMOTE" = "$(rad self --nid)" ]; then
echo "Error: refusing to delete your own remote"
exit 1
fi
cd "$RAD_HOME/storage/$REPO"
refs=$(git for-each-ref --format="%(refname)")
pattern="refs/namespaces/$2/refs/*"
for ref in $refs; do
case "$ref" in
"$pattern" )
git update-ref -d "$ref"
printf 'Deleted %s\n' "$ref"
;;
esac
done
git gc