Skip to content

Commit

Permalink
cli: add BUILD files
Browse files Browse the repository at this point in the history
The `grammar` macro from `pest_derive` doesn't actually interpret the given file
as relative in our case, so we have to give it the fully qualified relative path
which exists in the `buck-out/` dir.

Signed-off-by: Austin Seipp <[email protected]>
  • Loading branch information
thoughtpolice committed Jul 2, 2024
1 parent 6e56fde commit 9aac50b
Show file tree
Hide file tree
Showing 5 changed files with 123 additions and 0 deletions.
38 changes: 38 additions & 0 deletions cli/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@

load("//buck/shims/jj.bzl", "jj")
load("//cli/BUILD.deps.bzl", "JJ_CLI_DEPS")

alias(
# NOTE: default target for this package
name = 'cli',
actual = ':jj',
)

jj.rust_library(
name = "jj-cli",
srcs = glob([
"src/**/*.rs",
"src/**/*.toml",
"src/**/*.json",
"src/**/*.pest",
], exclude = [
"**/main.rs"
]),

features = [
"watchman",
"git",
],

deps = JJ_CLI_DEPS,
)

jj.rust_binary(
name = 'jj',
srcs = ['src/main.rs'],
features = [
"watchman",
"git",
],
deps = [ ":jj-cli" ] + JJ_CLI_DEPS,
)
52 changes: 52 additions & 0 deletions cli/BUILD.deps.bzl
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@

JJ_CLI_DEPS = [
# CARGO-SYNC-START: dependencies
'//lib:jj-lib',
'third-party//rust:chrono',
'third-party//rust:clap',
'third-party//rust:clap-markdown',
'third-party//rust:clap_complete',
'third-party//rust:clap_complete_nushell',
'third-party//rust:clap_mangen',
'third-party//rust:config',
'third-party//rust:criterion',
'third-party//rust:crossterm',
'third-party//rust:dirs',
'third-party//rust:esl01-renderdag',
'third-party//rust:futures',
'third-party//rust:git2',
'third-party//rust:gix',
'third-party//rust:hex',
'third-party//rust:indexmap',
'third-party//rust:itertools',
'third-party//rust:maplit',
'third-party//rust:minus',
'third-party//rust:once_cell',
'third-party//rust:pest',
'third-party//rust:pest_derive',
'third-party//rust:pollster',
'third-party//rust:rayon',
'third-party//rust:regex',
'third-party//rust:rpassword',
'third-party//rust:scm-record',
'third-party//rust:serde',
'third-party//rust:slab',
'third-party//rust:strsim',
'third-party//rust:tempfile',
'third-party//rust:textwrap',
'third-party//rust:thiserror',
'third-party//rust:timeago',
'third-party//rust:toml_edit',
'third-party//rust:tracing',
'third-party//rust:tracing-chrome',
'third-party//rust:tracing-subscriber',
'third-party//rust:unicode-width',
# CARGO-SYNC-END
] + select({
"config//os:windows": [],
"DEFAULT": [
# CARGO-SYNC-START: dependencies@cfg(unix)
'third-party//rust:libc',
# CARGO-SYNC-END
],
})
4 changes: 4 additions & 0 deletions cli/PACKAGE
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

package(
visibility = [ 'PUBLIC' ],
)
23 changes: 23 additions & 0 deletions cli/examples/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@

load("//buck/shims/jj.bzl", "jj")
load("//cli/BUILD.deps.bzl", "JJ_CLI_DEPS")

EXAMPLES = [
'custom-backend',
'custom-command',
'custom-commit-templater',
'custom-global-flag',
'custom-operation-templater',
'custom-working-copy',
]

[
jj.rust_binary(
name = name,
srcs = glob(["{}/**/*.rs".format(name)]),
deps = [
"//cli:jj-cli",
"third-party//rust:async-trait",
] + JJ_CLI_DEPS,
) for name in EXAMPLES
]
6 changes: 6 additions & 0 deletions cli/src/template_parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@ use pest::Parser;
use pest_derive::Parser;
use thiserror::Error;

#[cfg(buck_build)]
#[derive(Parser)]
#[grammar = "cli/src/template.pest"]
struct TemplateParser;

#[cfg(not(buck_build))]
#[derive(Parser)]
#[grammar = "template.pest"]
struct TemplateParser;
Expand Down

0 comments on commit 9aac50b

Please sign in to comment.