59 Commits

Author SHA1 Message Date
Casey Rodarmor
587843f09c
Pass command as first argument to shell (#2061) 2024-05-20 04:12:09 +00:00
Saheed Adeleye
c6612de760
Add shell() function for running external commands (#2047) 2024-05-20 00:24:27 +00:00
laniakea64
4961f49c38
Add encode_uri_component function (#2052) 2024-05-19 00:36:34 +00:00
laniakea64
7fa6ed8149
Add choose function for generating random strings (#2049) 2024-05-18 23:29:14 +00:00
Casey Rodarmor
7359deeb99
Replace FunctionContext with Evaluator (#2048) 2024-05-18 00:21:47 +00:00
Saheed Adeleye
89ccf42ddf
Add prepend() function (#2045) 2024-05-17 23:23:59 +00:00
Saheed Adeleye
eb605181c2
Add append() function (#2046) 2024-05-17 23:12:38 +00:00
Poliorcetics
caace0a115
Update clap to version 4 (#1924) 2024-05-14 20:29:40 -07:00
Trevor Gross
dc952f9c43
Add blake3 and blake3_file functions (#1860) 2024-02-11 20:56:04 +00:00
Casey Rodarmor
43d88f50e0
Add function to canonicalize paths (#1859) 2024-01-19 20:04:28 +00:00
Swordelf2
53cea2f823
Add just_pid function (#1833) 2024-01-12 03:22:27 +00:00
Trevor Gross
c2af5a1dd6
Add functions to return XDG base directories (#1822) 2024-01-11 23:50:04 +00:00
Victor Adossi ("vados")
64d7d07185
Add semver_matches function (#1713) 2023-10-27 20:07:46 +00:00
Yuri Astrakhan
be7f161554
Misc fixes (#1700) 2023-10-17 03:07:09 +00:00
Matt Schulte
63ed00ff78
Add num_cpus() function (#1568) 2023-08-02 23:52:21 +00:00
Baden Ashford
bba673fd79
Add env() function (#1613) 2023-06-13 12:49:46 +00:00
Yuri Astrakhan
a1220c63e3
Cleanup (#1566) 2023-06-12 16:53:55 +00:00
Casey Rodarmor
a81b094441
Downgrade to TLS 1.2 in install script (#1536)
Revert "Update install script and readmes to use tls v1.3 (#1481)"

This reverts commit 9b6b0b7facf3e50a6cec9a82d0bd0eab8ce1e03e.
2023-01-27 02:49:03 +00:00
Casey Rodarmor
182ef134d9
Add invocation_directory_native() (#1507) 2023-01-13 19:03:14 +00:00
Casey Rodarmor
157862d398
Merge imports (#1462) 2022-12-28 04:16:18 +00:00
Cameron Steffen
216df31543
Eliminate lazy_static (#1442) 2022-12-15 16:53:21 -08:00
miles
7d6483b995
Add replace_regex function (#1393) 2022-11-08 06:47:33 +00:00
Giancarlo França
be11a26226
Add more case-conversion functions (#1383) 2022-10-27 03:44:18 +00:00
Casey Rodarmor
deac684aaa
Use for loop in capitalize implementation (#1377) 2022-10-25 03:52:43 +00:00
Cihan Demirci
aaef61b908
Add capitalize(s) function (#1375)
`capitalize(s)` converts the first character of s to uppercase
and the rest to lowercase.
2022-10-24 20:39:40 -07:00
Casey Rodarmor
01fae9b1e4
Do use super::*; instead of use crate::common::*; (#1239) 2022-06-19 04:56:31 +00:00
mbodmer
862d6a52ab
SHA-256 and UUID functions (#1170) 2022-05-04 23:18:31 +00:00
Casey Rodarmor
12fe9371f6
Generate book from readme (#1155) 2022-05-04 06:05:55 +00:00
Chris Hamons
7299353977
Add error() function (#1118) 2022-03-03 00:48:28 +00:00
Laura Demkowicz-Duffy
a3f61a19ff
Add absolute_path function (#1121) 2022-03-03 00:41:48 +00:00
Casey Rodarmor
3118ce7211
Make path_exists() relative to current directory (#1122) 2022-02-28 03:09:31 +00:00
Damian Kula
6271e94bc9
Add path_exists() function (#1106) 2022-02-21 21:45:30 +00:00
Casey Rodarmor
27cd8fd554
Remove call to sed in justfile (#1078) 2022-01-30 20:16:10 +00:00
Casey Rodarmor
3ef420ccb3
Add quote(s) function for escaping strings (#1022)
Replace all single quotes with `'\''` and prepend and append single
quotes to `s`. This is sufficient to escape special characters for many
shells, including most Bourne shell descendants.
2021-11-08 19:22:58 +00:00
Casey Rodarmor
58a196f434
Make join accept two or more arguments (#1000) 2021-10-15 00:00:58 +00:00
Casey Rodarmor
6786bb0953
Add trim_end(s) and trim_start(s) functions (#999) 2021-10-14 07:35:15 +00:00
Casey Rodarmor
d6d4b01af4
Add more string manipulation functions (#998) 2021-10-14 07:03:57 +00:00
Casey Rodarmor
dbf142369b
Bump target version to 2.0 (#957) 2021-08-27 23:36:41 +00:00
Liam
a24c86ed5a
Add string manipulation functions (#888) 2021-07-03 19:39:45 +00:00
Casey Rodarmor
024f8279bc
Add clean function for simplifying paths (#883) 2021-06-25 06:41:20 +00:00
Casey Rodarmor
87e395254b
Add join function for joining paths (#882) 2021-06-24 22:55:29 +00:00
Antonio Gelameris
162d2df1ba
Add path manipulation functions (#872) 2021-06-17 07:56:09 +00:00
Benoit de Chezelles
13e9f406c8
Add just_executable() function (#775)
The `just_executable()` function returns the absolute path of the
currently running `just` executable.
2021-03-28 15:44:02 -07:00
Casey Rodarmor
7ae890ce61
Note shebang line splitting inconsistency in readme (#757) 2021-02-15 01:18:31 -08:00
Casey Rodarmor
2b688d4858
Trigger build on pushes and pull requests (#607) 2020-03-13 21:20:41 -07:00
Casey Rodarmor
ed991cb509
Add additional continuous integration checks (#574)
Add GitHub Actions checks:

- Clippy is placated
- Rustfmt doesn't produce any changes
- Shell completion scripts are current
2020-01-15 02:16:13 -08:00
Casey Rodarmor
61ab53dbc1
Add justfile_directory() and justfile() (#569)
Add `justfile()` function, returning the current justfile, and
`justfile_directory(), returning its parent directory.
2019-12-25 06:12:06 -08:00
Casey Rodarmor
d2decbfdb8
Resolve functions (#550)
Modifies parsing to return strongly-typed `Thunk`s, which contain both
the function implementation, as well as the correct number of arguments.

This moves unknown function and function argument count mismatch errors
to parse time.
2019-11-21 12:14:10 -06:00
Casey Rodarmor
aefdcea7d0
Gargantuan refactor (#522)
- Instead of changing the current directory with `env::set_current_dir`
  to be implicitly inherited by subprocesses, we now use
  `Command::current_dir` to set it explicitly. This feels much better,
  since we aren't dependent on the implicit state of the process's
  current directory.

- Subcommand execution is much improved.

- Added a ton of tests for config parsing, config execution, working
  dir, and search dir.

- Error messages are improved. Many more will be colored.

- The Config is now onwed, instead of borrowing from the arguments and
  the `clap::ArgMatches` object. This is a huge ergonomic improvement,
  especially in tests, and I don't think anyone will notice.

- `--edit` now uses `$VISUAL`, `$EDITOR`, or `vim`, in that order,
  matching git, which I think is what most people will expect.

- Added a cute `tmptree!{}` macro, for creating temporary directories
  populated with directories and files for tests.

- Admitted that grammer is LL(k) and I don't know what `k` is.
2019-11-09 21:43:20 -08:00
Casey Rodarmor
b2285ce0e0
Reform Parser (#509)
Just's first parser performed both parsing, i.e the transformation of a
token stream according to the language grammar, and a number of consistency
checks and analysis passes.

This made parsing and analysis quite complex, so this diff introduces a
new, much cleaner `Parser`, and moves existing analysis into a dedicated
`Analyzer`.
2019-11-07 10:55:15 -08:00