man page! it's not finished yet but we're that much closer to the big leagues now, son
This commit is contained in:
parent
27e4def375
commit
ba5e0b64ca
@ -23,6 +23,8 @@ SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib/cellar")
|
|||||||
# which point to directories outside the build tree to the install RPATH
|
# which point to directories outside the build tree to the install RPATH
|
||||||
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||||
|
|
||||||
|
include(Ronn)
|
||||||
|
|
||||||
find_package(PythonInterp)
|
find_package(PythonInterp)
|
||||||
find_package(PythonModule)
|
find_package(PythonModule)
|
||||||
find_python_module(cogapp REQUIRED)
|
find_python_module(cogapp REQUIRED)
|
||||||
@ -117,6 +119,9 @@ add_dependencies(cellar cog) # effectively redundant but a couple of the bin's
|
|||||||
# files are cogged, so this is mostly for people
|
# files are cogged, so this is mostly for people
|
||||||
# looking at CMakeLists.txt for hints
|
# looking at CMakeLists.txt for hints
|
||||||
|
|
||||||
|
generate_manpage(cellar 1)
|
||||||
|
add_manpage_target()
|
||||||
|
|
||||||
install(TARGETS cellar ${cellar_LIBRARIES}
|
install(TARGETS cellar ${cellar_LIBRARIES}
|
||||||
RUNTIME DESTINATION bin
|
RUNTIME DESTINATION bin
|
||||||
LIBRARY DESTINATION lib/cellar
|
LIBRARY DESTINATION lib/cellar
|
||||||
|
41
cmake/Modules/Ronn.cmake
Normal file
41
cmake/Modules/Ronn.cmake
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
find_program(RONN ronn)
|
||||||
|
find_program(GZIP gzip)
|
||||||
|
|
||||||
|
if(NOT RONN OR NOT GZIP)
|
||||||
|
message(WARNING "Not generating manpages")
|
||||||
|
if(NOT RONN)
|
||||||
|
message(WARNING " ronn not installed")
|
||||||
|
endif(NOT RONN)
|
||||||
|
if (NOT GZIP)
|
||||||
|
message(WARNING " gzip (somehow) not installed")
|
||||||
|
endif(NOT GZIP)
|
||||||
|
macro(generate_manpage) # Empty, won't do anything
|
||||||
|
endmacro(generate_manpage)
|
||||||
|
macro(add_manpage_target) # ditto
|
||||||
|
endmacro(add_manpage_target)
|
||||||
|
else(NOT RONN OR NOT GZIP)
|
||||||
|
set(manpages)
|
||||||
|
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/man")
|
||||||
|
macro(generate_manpage TARGET SECTION)
|
||||||
|
set(ronnfile "${CMAKE_SOURCE_DIR}/doc/${TARGET}.${SECTION}.ronn")
|
||||||
|
set(outfile "${CMAKE_CURRENT_BINARY_DIR}/man/${TARGET}.${SECTION}")
|
||||||
|
add_custom_command(OUTPUT "${outfile}"
|
||||||
|
DEPENDS "${ronnfile}"
|
||||||
|
COMMAND ${RONN}
|
||||||
|
# BULLSHIT: ronn doesn't let you specify your own output filenames,
|
||||||
|
# have to hack it with shell redirecting
|
||||||
|
ARGS -r --pipe "${ronnfile}" > "${outfile}"
|
||||||
|
)
|
||||||
|
add_custom_command(OUTPUT "${outfile}.gz"
|
||||||
|
DEPENDS "${outfile}"
|
||||||
|
COMMAND "${GZIP}"
|
||||||
|
ARGS -f "${outfile}"
|
||||||
|
)
|
||||||
|
set(manpages ${manpages} "${outfile}.gz")
|
||||||
|
endmacro(generate_manpage)
|
||||||
|
|
||||||
|
macro(add_manpage_target) # this is a macro so we can call it after we've generated all our manpages
|
||||||
|
add_custom_target(man ALL DEPENDS ${manpages})
|
||||||
|
install(FILES ${manpages} DESTINATION "${MAN_INSTALL_DIR}/man${SECTION}" OPTIONAL)
|
||||||
|
endmacro(add_manpage_target)
|
||||||
|
endif(NOT RONN OR NOT GZIP)
|
37
doc/cellar.1.ronn
Normal file
37
doc/cellar.1.ronn
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
cellar(1) - bottle management tool for WINE connoisseurs
|
||||||
|
========================================================
|
||||||
|
|
||||||
|
## SYNOPSIS
|
||||||
|
|
||||||
|
`cellar` [-dv] [-b <bottle>] [--] <command> <subargs>
|
||||||
|
|
||||||
|
## DESCRIPTION
|
||||||
|
|
||||||
|
`cellar` is a tool for managing WINE bottles. `cellar` arguments are divided like this:
|
||||||
|
|
||||||
|
* First, [GLOBAL OPTIONS][] are processed. These control things like program verbosity, which bottle to use,
|
||||||
|
and other settings that are relevant no matter what you're doing.
|
||||||
|
* Second, cellar takes a [COMMAND][#COMMANDS], and that command probably has its own set of arguments and flags.
|
||||||
|
TCLAP is generally used as the command line parser, which provides a -- argument to separate the command from
|
||||||
|
the global options (e.g. `cellar -v -- create bottlename`). If the program seems to be interpreting a flag
|
||||||
|
ambiguously, try this first.
|
||||||
|
|
||||||
|
## GLOBAL OPTIONS
|
||||||
|
|
||||||
|
* `-v`, `--verbose`:
|
||||||
|
Enable verbose output.
|
||||||
|
|
||||||
|
* `-d', `--dryrun`:
|
||||||
|
Don't actually do anything, just print what you would do. Implies `--verbose`.
|
||||||
|
|
||||||
|
* `-b`, `--bottle <bottlename>`:
|
||||||
|
Specify that you want to use the bottle named <bottlename>, instead of the one activated with the "cellar activate"
|
||||||
|
command.
|
||||||
|
|
||||||
|
## COMMANDS
|
||||||
|
|
||||||
|
TODO: Generate this.
|
||||||
|
|
||||||
|
## COPYRIGHT
|
||||||
|
|
||||||
|
Copyright © 2017 Nicholas O'Connor. Provided under the terms of the MIT license: https://opensource.org/licenses/MIT
|
Loading…
Reference in New Issue
Block a user