Compare commits

..

1 commit
main ... v0.2.1

Author SHA1 Message Date
17584cba0f Version set to 0.2.1
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2024-02-28 17:20:03 +00:00
5 changed files with 81 additions and 87 deletions

View file

@ -1,52 +0,0 @@
name: Rust
on:
push:
branches: ["next"]
pull_request:
branches: ["main"]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: docker
strategy:
matrix:
toolchain:
- name: stable
- name: nightly
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Format
uses: https://git.kemitix.net/kemitix/rust@v2.3.0
with:
args: ${{ matrix.toolchain.name }} cargo fmt --all -- --check
# - name: Machete
# uses: https://github.com/bnjbvr/cargo-machete@v0.6.2
- name: Clippy
uses: https://git.kemitix.net/kemitix/rust@v2.3.0
with:
args: ${{ matrix.toolchain.name }} cargo clippy
- name: Build
uses: https://git.kemitix.net/kemitix/rust@v2.3.0
with:
args: ${{ matrix.toolchain.name }} cargo build
- name: Test
uses: https://git.kemitix.net/kemitix/rust@v2.3.0
with:
args: ${{ matrix.toolchain.name }} cargo test --no-fail-fast
- name: Integration
uses: https://git.kemitix.net/kemitix/rust@v2.3.0
with:
args: ./test.sh

View file

@ -1,5 +1,5 @@
variables:
- &rust_image "docker.io/rust:1.82.0"
- &rust_image "docker.io/rust:1.76"
- &slow_check_paths
- path:
# rust source code
@ -14,11 +14,22 @@ variables:
- ".woodpecker.yml"
steps:
toml_fmt:
image: docker.io/tamasfe/taplo:0.9.3
image: docker.io/tamasfe/taplo:0.8.1
commands:
- taplo format --check
cargo_fmt:
image: docker.io/rustlang/rust:nightly
environment:
# store cargo data in repo folder so that it gets cached between steps
CARGO_HOME: .cargo_home
commands:
- rustup component add rustfmt
- cargo fmt --check
cargo_machete:
image: *rust_image
commands:
@ -36,6 +47,46 @@ steps:
- IGNORED=$(git ls-files --cached -i --exclude-standard)
- if [[ "$IGNORED" ]]; then echo "Ignored files present:\n$IGNORED\n"; exit 1; fi
check:
image: *rust_image
environment:
CARGO_HOME: .cargo_home
commands:
- cargo check
when: *slow_check_paths
cargo_clippy:
image: *rust_image
environment:
CARGO_HOME: .cargo_home
commands:
- rustup component add clippy
- cargo clippy --tests --all-targets -- -D warnings
when: *slow_check_paths
cargo_build:
image: *rust_image
environment:
CARGO_HOME: .cargo_home
commands:
- cargo build
- mv target/debug/skip target/skip
when: *slow_check_paths
cargo_test:
image: *rust_image
environment:
RUST_BACKTRACE: "1"
CARGO_HOME: .cargo_home
commands:
- cargo test --no-fail-fast
when: *slow_check_paths
integration_test:
image: *rust_image
commands:
- ./test.sh
publish_to_crates_io:
image: *rust_image
commands:

View file

@ -2,7 +2,7 @@
Skip part of a file.
As `head` will show the top of a file up-to a number of line,
As `head` will show the top of a file after a number of line,
so `skip` will do the opposite, and not show the top of the file,
but will show the rest.

View file

@ -1,10 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:recommended"],
"packageRules": [
{
"matchManagers": ["cargo"],
"rangeStrategy": "replace"
}
"extends": [
"config:recommended"
]
}

51
test.sh
View file

@ -5,38 +5,37 @@ set -e
echo "PWD: $PWD"
ls -l
ls -l target
SKIP="./target/debug/skip"
SKIP="./target/skip"
DIFF="diff -u --color"
if test ! -x $SKIP; then
echo "File missing: $SKIP - try 'cargo build'"
exit 1
if test ! -x $SKIP ; then
echo "File missing: $SKIP - try 'cargo build'"
exit 1
fi
echo "> skip a line when reading from stdin"
INPUT=$(
cat <<EOF
INPUT=$(cat<<EOF
line 1
line 2
EOF
)
echo "line 2" >test.expect
echo "$INPUT" | $SKIP 1 >test.out
echo "line 2" > test.expect
echo "$INPUT" | $SKIP 1 > test.out
$DIFF test.expect test.out
rm test.expect test.out
echo "> skip a line when reading from a file"
cat <<EOF >test.in
cat<<EOF > test.in
line 1
line 2
EOF
echo "line 2" >test.expect
$SKIP 1 test.in >test.out
echo "line 2" > test.expect
$SKIP 1 test.in > test.out
$DIFF test.expect test.out
rm test.expect test.out
echo "> skip until 2 matching lines seen"
cat <<EOF >test.in
cat<<EOF > test.in
alpha
beta
alpha
@ -44,17 +43,17 @@ alpha
gamma
alpha
EOF
cat <<EOF >test.expect
cat<<EOF > test.expect
alpha
gamma
alpha
EOF
$SKIP 2 test.in --line alpha >test.out
$SKIP 2 test.in --line alpha > test.out
$DIFF test.expect test.out
rm test.in test.expect test.out
echo "> skip lines until 2 tokens seen"
cat <<EOF >test.in
cat<<EOF > test.in
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
@ -64,18 +63,18 @@ quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea
commodo consequat.
EOF
cat <<EOF >test.expect
cat<<EOF > test.expect
Ut enim ad minim veniam,
quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea
commodo consequat.
EOF
$SKIP 2 test.in --token dolor >test.out
$SKIP 2 test.in --token dolor > test.out
$DIFF test.expect test.out
rm test.in test.expect test.out
echo "> handle unknown parameter with simple error message"
cat <<EOF >test.expect.err
cat<<EOF > test.expect.err
error: unexpected argument '--foo' found
tip: to pass '--foo' as a value, use '-- --foo'
@ -84,17 +83,17 @@ Usage: skip [OPTIONS] <LINES> [FILE]
For more information, try '--help'.
EOF
cat <<EOF >test.expect
cat<<EOF > test.expect
EOF
touch test.out test.err
$SKIP --foo >test.out 2>test.err || true
$SKIP --foo > test.out 2> test.err || true
$DIFF test.expect test.out
$DIFF test.expect.err test.err
rm test.expect test.out
rm test.expect.err test.err
echo "> handle ignore-extra when token is missing"
cat <<EOF >test.expect.err
cat<<EOF > test.expect.err
error: the following required arguments were not provided:
--token <TOKEN>
<LINES>
@ -103,17 +102,17 @@ Usage: skip --ignore-extras --token <TOKEN> <LINES> [FILE]
For more information, try '--help'.
EOF
cat <<EOF >test.expect
cat<<EOF > test.expect
EOF
touch test.out test.err
$SKIP --ignore-extras >test.out 2>test.err || true
$SKIP --ignore-extras > test.out 2> test.err || true
$DIFF test.expect test.out
$DIFF test.expect.err test.err
rm test.expect test.out
rm test.expect.err test.err
echo "> skip lines until 4 tokens seen - ignored extra tokens on same line"
cat <<EOF >test.in
cat<<EOF > test.in
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
@ -123,12 +122,12 @@ quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea
commodo consequat.
EOF
cat <<EOF >test.expect
cat<<EOF > test.expect
quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea
commodo consequat.
EOF
$SKIP 4 test.in --token m --ignore-extras >test.out
$SKIP 4 test.in --token m --ignore-extras > test.out
$DIFF test.expect test.out
rm test.in test.expect test.out