summaryrefslogtreecommitdiff
path: root/cli/src/args.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/src/args.rs')
-rw-r--r--cli/src/args.rs119
1 files changed, 0 insertions, 119 deletions
diff --git a/cli/src/args.rs b/cli/src/args.rs
deleted file mode 100644
index 7fdb041b..00000000
--- a/cli/src/args.rs
+++ /dev/null
@@ -1,119 +0,0 @@
-use std::fmt::{self, Display, Formatter};
-use std::path::PathBuf;
-
-use clap::{ArgAction, Parser, Subcommand, ValueEnum};
-
-/// typst creates PDF files from .typ files
-#[derive(Debug, Clone, Parser)]
-#[clap(name = "typst", version = crate::typst_version(), author)]
-pub struct CliArguments {
- /// The typst command to run
- #[command(subcommand)]
- pub command: Command,
-
- /// Sets the level of logging verbosity:
- /// -v = warning & error, -vv = info, -vvv = debug, -vvvv = trace
- #[clap(short, long, action = ArgAction::Count)]
- pub verbosity: u8,
-}
-
-/// What to do.
-#[derive(Debug, Clone, Subcommand)]
-#[command()]
-pub enum Command {
- /// Compiles the input file into a PDF file
- #[command(visible_alias = "c")]
- Compile(CompileCommand),
-
- /// Watches the input file and recompiles on changes
- #[command(visible_alias = "w")]
- Watch(CompileCommand),
-
- /// List all discovered fonts in system and custom font paths
- Fonts(FontsCommand),
-}
-
-/// Compiles the input file into a PDF file
-#[derive(Debug, Clone, Parser)]
-pub struct CompileCommand {
- /// Path to input Typst file
- pub input: PathBuf,
-
- /// Path to output PDF file or PNG file(s)
- pub output: Option<PathBuf>,
-
- /// Configure the project root
- #[clap(long = "root", env = "TYPST_ROOT", value_name = "DIR")]
- pub root: Option<PathBuf>,
-
- /// Add additional directories to search for fonts
- #[clap(
- long = "font-path",
- env = "TYPST_FONT_PATHS",
- value_name = "DIR",
- action = ArgAction::Append,
- )]
- pub font_paths: Vec<PathBuf>,
-
- /// Opens the output file after compilation using the default PDF viewer
- #[arg(long = "open")]
- pub open: Option<Option<String>>,
-
- /// The PPI to use if exported as PNG
- #[arg(long = "ppi", default_value_t = 144.0)]
- pub ppi: f32,
-
- /// In which format to emit diagnostics
- #[clap(
- long,
- default_value_t = DiagnosticFormat::Human,
- value_parser = clap::value_parser!(DiagnosticFormat)
- )]
- pub diagnostic_format: DiagnosticFormat,
-
- /// Produces a flamegraph of the compilation process
- #[arg(long = "flamegraph", value_name = "OUTPUT_SVG")]
- pub flamegraph: Option<Option<PathBuf>>,
-}
-
-impl CompileCommand {
- /// The output path.
- pub fn output(&self) -> PathBuf {
- self.output
- .clone()
- .unwrap_or_else(|| self.input.with_extension("pdf"))
- }
-}
-
-/// List all discovered fonts in system and custom font paths
-#[derive(Debug, Clone, Parser)]
-pub struct FontsCommand {
- /// Add additional directories to search for fonts
- #[clap(
- long = "font-path",
- env = "TYPST_FONT_PATHS",
- value_name = "DIR",
- action = ArgAction::Append,
- )]
- pub font_paths: Vec<PathBuf>,
-
- /// Also list style variants of each font family
- #[arg(long)]
- pub variants: bool,
-}
-
-/// Which format to use for diagnostics.
-#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, ValueEnum)]
-pub enum DiagnosticFormat {
- Human,
- Short,
-}
-
-impl Display for DiagnosticFormat {
- fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
- self.to_possible_value()
- .expect("no values are skipped")
- .get_name()
- .fmt(f)
- }
-}