mirror of
https://github.com/uutils/coreutils.git
synced 2025-12-23 08:47:37 +00:00
136 lines
4.4 KiB
YAML
136 lines
4.4 KiB
YAML
# spell-checker:ignore dtolnay libsystemd libattr libcap gsub
|
|
|
|
name: Check uudoc Documentation Generation
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- 'src/bin/uudoc.rs'
|
|
- 'src/uu/*/locales/en-US.ftl'
|
|
- 'Cargo.toml'
|
|
- '.github/workflows/documentation.yml'
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- 'src/bin/uudoc.rs'
|
|
- 'src/uu/*/locales/en-US.ftl'
|
|
- 'Cargo.toml'
|
|
|
|
jobs:
|
|
check-doc:
|
|
name: Verify uudoc generates correct documentation
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v5
|
|
|
|
- name: Install/setup prerequisites
|
|
shell: bash
|
|
run: sudo apt-get -y update ; sudo apt-get -y install libselinux1-dev libsystemd-dev libacl1-dev libattr1-dev libcap-dev
|
|
|
|
- name: Install Rust toolchain
|
|
uses: dtolnay/rust-toolchain@stable
|
|
|
|
- name: Download tldr
|
|
run: curl https://tldr.sh/assets/tldr.zip -o docs/tldr.zip
|
|
|
|
- name: Generate documentation
|
|
run: cargo run --bin uudoc --all-features
|
|
|
|
- name: Get current version from Cargo.toml
|
|
id: version
|
|
run: |
|
|
VERSION=$(awk '/\[workspace\.package\]/{flag=1; next} flag && /version = /{gsub(/.*= "/, ""); gsub(/".*/, ""); print; exit}' Cargo.toml)
|
|
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
echo "Detected version: $VERSION"
|
|
|
|
- name: Check for --repeated option in uniq.md
|
|
run: |
|
|
if [ ! -f "docs/src/utils/uniq.md" ]; then
|
|
echo "docs/src/utils/uniq.md does not exist"
|
|
exit 1
|
|
fi
|
|
|
|
if ! grep -q -- "--repeated" docs/src/utils/uniq.md; then
|
|
echo "'--repeated' option not found in docs/src/utils/uniq.md"
|
|
echo "Content of uniq.md:"
|
|
head -50 docs/src/utils/uniq.md
|
|
exit 1
|
|
fi
|
|
|
|
- name: Check for correct version in ls.md
|
|
run: |
|
|
VERSION="${{ steps.version.outputs.version }}"
|
|
|
|
if [ ! -f "docs/src/utils/ls.md" ]; then
|
|
echo "docs/src/utils/ls.md does not exist"
|
|
exit 1
|
|
fi
|
|
|
|
if ! grep -q "v(uutils coreutils) $VERSION" docs/src/utils/ls.md; then
|
|
echo "Version '$VERSION' not found in docs/src/utils/ls.md"
|
|
echo "Found version info:"
|
|
grep "v(uutils coreutils)" docs/src/utils/ls.md || echo "No version info found"
|
|
echo "Full version section:"
|
|
grep -A2 -B2 "version" docs/src/utils/ls.md || echo "No version section found"
|
|
exit 1
|
|
fi
|
|
|
|
- name: Verify usage information is present
|
|
run: |
|
|
if [ ! -f "docs/src/utils/cat.md" ]; then
|
|
echo "docs/src/utils/cat.md does not exist"
|
|
exit 1
|
|
fi
|
|
|
|
if ! grep -q "cat \[OPTION\].*\[FILE\]" docs/src/utils/cat.md; then
|
|
echo "Usage information missing from cat.md"
|
|
echo "Content around usage:"
|
|
grep -A5 -B5 "cat" docs/src/utils/cat.md | head -20
|
|
exit 1
|
|
fi
|
|
|
|
- name: Verify help text is properly resolved
|
|
run: |
|
|
if [ ! -f "docs/src/utils/cat.md" ]; then
|
|
echo "docs/src/utils/cat.md does not exist"
|
|
exit 1
|
|
fi
|
|
|
|
if grep -q "cat-help-" docs/src/utils/cat.md; then
|
|
echo "Found unresolved Fluent keys in cat.md - help text not properly translated"
|
|
echo "Unresolved Fluent keys found:"
|
|
grep "cat-help-" docs/src/utils/cat.md
|
|
exit 1
|
|
fi
|
|
|
|
- name: Verify about text is present
|
|
run: |
|
|
if [ ! -f "docs/src/utils/cat.md" ]; then
|
|
echo "docs/src/utils/cat.md does not exist"
|
|
exit 1
|
|
fi
|
|
|
|
if ! grep -q "Concatenate FILE(s)" docs/src/utils/cat.md; then
|
|
echo "About text missing from cat.md"
|
|
echo "Content of cat.md:"
|
|
head -30 docs/src/utils/cat.md
|
|
exit 1
|
|
fi
|
|
|
|
- name: Verify tldr examples integration
|
|
run: |
|
|
if [ ! -f "docs/src/utils/cp.md" ]; then
|
|
echo "docs/src/utils/cp.md does not exist"
|
|
exit 1
|
|
fi
|
|
|
|
if ! grep -q "The examples are provided by" docs/src/utils/cp.md; then
|
|
echo "tldr examples integration missing from cp.md"
|
|
echo "Expected to find 'The examples are provided by' text"
|
|
echo "Content of cp.md:"
|
|
tail -20 docs/src/utils/cp.md
|
|
exit 1
|
|
fi
|