package dunolint

  1. Overview
  2. Docs
A linter for build files in dune projects

Install

dune-project
 Dependency

Authors

Maintainers

Sources

dunolint-0.0.20250804.tbz
sha256=e4ca7c98db73dd9ab2ae8cba37ee0645f580267484e9893dbce6e28f4f2f0170
sha512=7ca658fb96139a0c41724355ac6aaf83d75468c7df14569b8f6090711f73a8fb2408ed1145384e756418682f0fa660a915842fd2b3f8b42e5ed4990e795b384e

doc/src/dunolint.dunolint_cli/dunolint_cli.ml.html

Source file dunolint_cli.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
(*********************************************************************************)
(*  Dunolint - A tool to lint and help manage files in dune projects             *)
(*  Copyright (C) 2024-2025 Mathieu Barbin <mathieu.barbin@gmail.com>            *)
(*                                                                               *)
(*  This file is part of Dunolint.                                               *)
(*                                                                               *)
(*  Dunolint is free software; you can redistribute it and/or modify it          *)
(*  under the terms of the GNU Lesser General Public License as published by     *)
(*  the Free Software Foundation either version 3 of the License, or any later   *)
(*  version, with the LGPL-3.0 Linking Exception.                                *)
(*                                                                               *)
(*  Dunolint is distributed in the hope that it will be useful, but WITHOUT      *)
(*  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or        *)
(*  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License  *)
(*  and the file `NOTICE.md` at the root of this repository for more details.    *)
(*                                                                               *)
(*  You should have received a copy of the GNU Lesser General Public License     *)
(*  and the LGPL-3.0 Linking Exception along with this library. If not, see      *)
(*  <http://www.gnu.org/licenses/> and <https://spdx.org>, respectively.         *)
(*********************************************************************************)

let main =
  Command.group
    ~summary:"A linter for build files in OCaml dune projects."
    ~readme:(fun () ->
      "The goal of $(b,dunolint) is to check customizable invariants in your repo and \
       help with ergonomic issues, such as applying systematic changes across many \
       files. It supports things like enabling instrumentation, configuring recurring \
       lint or preprocess flags, sorting libraries alphabetically, and more. You can use \
       it at your convenience during development, and enforce consistency by integrating \
       it into your CI pipeline.\n\n\
       Main commands include:\n\n\
       - $(b,lint): apply linting configuration to an entire project at once, perhaps \
       interactively.\n\n\
       - $(b,tools): a collection of more specific commands, for example to facilitate \
       the integration with other tools.\n\n\
       For more information, use the $(b,--help) flag on a subcommand.")
    [ "lint", Cmd__lint.main
    ; ( "tools"
      , Command.group
          ~summary:"Tools commands (miscellaneous)."
          [ "lint-file", Cmd__tools__lint_file.main ] )
    ]
;;
OCaml

Innovation. Community. Security.