nom_config_in/entry/
command.rs1use nom::{
2 branch::alt,
3 bytes::complete::tag,
4 character::complete::{line_ending, not_line_ending},
5 combinator::{eof, map},
6 sequence::{pair, terminated},
7 IResult,
8};
9
10use crate::{util::wsi, ConfigInInput};
11
12pub fn parse_command(input: ConfigInInput) -> IResult<ConfigInInput, String> {
13 let end = alt((line_ending, eof));
14 map(
15 pair(
16 alt((tag::<&str, ConfigInInput, _>("echo"), tag("$MAKE"))),
17 wsi(terminated(not_line_ending, end)),
18 ),
19 |(cmd, params)| format!("{} {}", cmd.fragment(), params.fragment()),
20 )(input)
21}