mirror of
https://github.com/crate-ci/typos.git
synced 2024-11-22 00:51:11 -05:00
Merge pull request #276 from epage/action
fix(action): Be stricter/cleaner with entrypoint
This commit is contained in:
commit
78787b1768
4 changed files with 37 additions and 54 deletions
10
.github/workflows/test-action.yml
vendored
10
.github/workflows/test-action.yml
vendored
|
@ -10,16 +10,16 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
|
||||
- name: Prepare file with mistakes.
|
||||
run: echo "The quick brown foxx jumped over the slepy dog." > file.txt
|
||||
run: echo "Finallizes" > file.txt
|
||||
- name: Test force pass with mistakes
|
||||
continue-on-error: true
|
||||
uses: ./
|
||||
with:
|
||||
with:
|
||||
files: ./file.txt
|
||||
|
||||
- name: Prepare file with no mistakes.
|
||||
run: echo "The quick brown fox jumped over the sleepy dog." > file.txt
|
||||
- name: Test force pass with no mistakes
|
||||
run: echo "Finalizes" > file.txt
|
||||
- name: Test pass with no mistakes
|
||||
uses: ./
|
||||
with:
|
||||
with:
|
||||
files: ./file.txt
|
||||
|
|
|
@ -1,59 +1,34 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -eu
|
||||
|
||||
printf "Found files in workspace:\n"
|
||||
ls
|
||||
log() {
|
||||
echo -e "$1" >&2
|
||||
}
|
||||
|
||||
printf "\nLooking for typos installed...\n"
|
||||
which typos
|
||||
CMD_NAME="typos"
|
||||
TARGET=${INPUT_FILES:-"."}
|
||||
|
||||
COMMAND="typos"
|
||||
|
||||
# Show the _typos.toml file
|
||||
if [ -f "_typos.toml" ]; then
|
||||
echo "_typos.toml:"
|
||||
cat _typos.toml
|
||||
echo
|
||||
if [[ -z $(ls ${TARGET} 2>/dev/null) ]]; then
|
||||
log "ERROR: Input files (${TARGET}) not found"
|
||||
exit 1
|
||||
fi
|
||||
if [[ -z $(which ${CMD_NAME} 2>/dev/null) ]]; then
|
||||
log "ERROR: 'typos' not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
COMMAND="${CMD_NAME} ${TARGET}"
|
||||
|
||||
# Ignore implicit configuration files
|
||||
if [ "${INPUT_ISOLATED}" == "true" ]; then
|
||||
COMMAND="${COMMAND} --isolated"
|
||||
if [ "${INPUT_ISOLATED:-false}" == "true" ]; then
|
||||
COMMAND+=" --isolated"
|
||||
fi
|
||||
|
||||
|
||||
# Use a custom configuration file
|
||||
if [ ! -z "${INPUT_CONFIG}" ]; then
|
||||
|
||||
# It must exist
|
||||
if [ ! -f "${INPUT_CONFIG}" ]; then
|
||||
printf "${INPUT_CONFIG} does not exist.\n"
|
||||
exit 1;
|
||||
else
|
||||
# Show the custom config to the user
|
||||
printf "Custom config:\n"
|
||||
cat "${INPUT_CONFIG}"
|
||||
echo
|
||||
fi
|
||||
COMMAND="${COMMAND} --config ${INPUT_CONFIG}"
|
||||
if [[ -n "${INPUT_CONFIG:-}" ]]; then
|
||||
COMMAND+=" --config ${INPUT_CONFIG}"
|
||||
fi
|
||||
|
||||
# Files are technically optional
|
||||
if [ ! -z "${INPUT_FILES}" ]; then
|
||||
COMMAND="${COMMAND} ${INPUT_FILES}"
|
||||
fi
|
||||
|
||||
echo "Command: "
|
||||
echo "${COMMAND}"
|
||||
echo
|
||||
|
||||
log "$ ${COMMAND}"
|
||||
${COMMAND}
|
||||
retval=$?
|
||||
|
||||
if [[ "${retval}" -eq 0 ]]; then
|
||||
printf "No spelling mistakes found! 🎉️\n"
|
||||
else
|
||||
printf "Spelling mistakes found! 😱️\n"
|
||||
exit $retval;
|
||||
fi
|
||||
|
|
|
@ -172,13 +172,14 @@ fn run_checks(
|
|||
let mut errors_found = false;
|
||||
for path in args.path.iter() {
|
||||
let cwd = if path == std::path::Path::new("-") {
|
||||
global_cwd.as_path()
|
||||
global_cwd.clone()
|
||||
} else if path.is_file() {
|
||||
path.parent().unwrap()
|
||||
let mut cwd = path.canonicalize().with_code(proc_exit::Code::USAGE_ERR)?;
|
||||
cwd.pop();
|
||||
cwd
|
||||
} else {
|
||||
path.as_path()
|
||||
path.clone()
|
||||
};
|
||||
let cwd = cwd.canonicalize().with_code(proc_exit::Code::USAGE_ERR)?;
|
||||
|
||||
engine
|
||||
.init_dir(&cwd)
|
||||
|
|
|
@ -22,3 +22,10 @@ fn test_stdin_correct() {
|
|||
.write_stdin("Apropriate world");
|
||||
cmd.assert().success().stdout("Appropriate world");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_file_failure() {
|
||||
let mut cmd = Command::cargo_bin("typos").unwrap();
|
||||
cmd.arg("README.md");
|
||||
cmd.assert().code(2);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue