azstd 0.1.0

A cli tool to generate project templates
version: "3"

tasks:
  docs:
    cmds:
      - uv sync --all-packages --all-groups
      - uv run mkdocs serve --open --watch=docs --watch=mkdocs.yml --dev-addr=localhost:5005

  docs:deploy:
    aliases: ["docs:d"]
    cmds:
      - task: sync
      - uv run mkdocs gh-deploy # build and create gh-pages branch
      - git push origin gh-pages:gh-pages --force # push to public repo

  fmt:
    cmds:
      # - uv run ruff format . --config=pyproject.toml
      - uv run ruff check --fix . --config=pyproject.toml
      - uv run ruff check --fix . --config=pyproject.toml
      - uv run ruff format . --config=pyproject.toml
      # - uv run ruff format .
    ignore_error: true

  build:
    aliases: ["b"]
    cmds:
      - uv build -o dist/
    ignore_error: true

  build:pyo3:
    aliases: ["br"]
    cmds:
      - uvx maturin develop --release --strip
      # - uv run maturin build

  rel:
    aliases: ["rel"]
    cmds:
      - uvx maturin build --release --strip

  publish:rust:
    aliases: ["pr"]
    cmds:
      - echo "publish to pypi, token is $UV_PUBLISH_TOKEN"
      - uvx maturin publish
    # dotenv:
    #   - ../../.env

  run01:
    aliases: ["r1"]
    cmds:
      - uv run src/main.py

  clean:
    aliases: ["cl"]
    cmds:
      - find . -name "target" -exec rm -rf {} \;
      - find . -name "build" -exec rm -rf {} \;
      - find . -name "dist" -exec rm -rf {} \;
    ignore_error: true

  clean:build:
    aliases: ["cb"]
    cmds:
      - task: clean
      - task: build

  # 发包登录:
  publish:auth:
    aliases: ["pa", "auth"]
    cmds:
      - cargo login ${CREATES_AUTH_TOKEN}

  publish:dry:
    aliases: ["pd", "dry"]
    cmds:
      - cargo publish --dry-run

  publish:
    aliases: ["p", "up"]
    cmds:
      - cargo publish
      - open https://crates.io/crates/${CRATE_NAME}
    vars:
      CRATE_NAME: "azstd-rs"