just playing with tangled
at ig/vimdiffwarn 41 lines 1.3 kB view raw
1// Copyright 2024 The Jujutsu Authors 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// https://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15use std::io::Write as _; 16 17use tracing::instrument; 18 19use crate::cli_util::CommandHelper; 20use crate::command_error::user_error; 21use crate::command_error::CommandError; 22use crate::ui::Ui; 23 24/// Show the current workspace root directory (shortcut for `jj workspace root`) 25#[derive(clap::Args, Clone, Debug)] 26pub(crate) struct RootArgs {} 27 28#[instrument(skip_all)] 29pub(crate) fn cmd_root( 30 ui: &mut Ui, 31 command: &CommandHelper, 32 RootArgs {}: &RootArgs, 33) -> Result<(), CommandError> { 34 let root = command 35 .workspace_loader()? 36 .workspace_root() 37 .to_str() 38 .ok_or_else(|| user_error("The workspace root is not valid UTF-8"))?; 39 writeln!(ui.stdout(), "{root}")?; 40 Ok(()) 41}