Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
PORTFMT(1)		     General Commands Manual		      PORTFMT(1)

NAME
     portfmt -- format FreeBSD Ports Collection Makefiles

SYNOPSIS
     portfmt [-D[context]] [-ditu] [-w wrapcol] [Makefile]

DESCRIPTION
     portfmt is a tool for formatting FreeBSD Ports Collection Makefiles.

     If  the  optional Makefile argument is not given, the Makefile will be read
     from stdin.  This can be useful for editor integration where you might want
     to only format portions of your Makefile.

     The following options are available:

     -D[context]
	     Output a unified diff from the original to the  formatted	version.
	     This can optionally be followed by the number of context lines.  It
	     defaults to 3 lines of context.  For full context use 0.

     -d      Dump  the	AST  to  stdout.  This is only useful for debugging pur-
	     poses.  If this flag is specified -i is ignored.

     -i      Format Makefile in-place instead of writing the result to stdout.

     -t      Format and reindent target commands.

     -u      Leave variables unsorted.

     -U      Always sort variables.

     -w wrapcol
	     Sets the wrapping column to wrapcol (default: 80).  This is a  goal
	     not  a  hard  value.  It will be ignored for several variables like
	     COMMENT, DISTFILES, MASTER_SITES, etc.

	     With a value of -1 it is ignored for all variables.  Variables with
	     wrapped tokens over multiple lines will be concatenated onto a sin-
	     gle line.

EDITOR INTEGRATION
     You can integrate Portfmt into your editor to conveniently run it	only  on
     parts of the port, e.g., to reformat USES after adding a new item to it.

   Emacs
     Add this to ~/.emacs.d/init.el to format the current region with C-c p:

	   (defun portfmt (&optional b e)
	     "PORTFMT(1) on region"
	     (interactive "r")
	     (shell-command-on-region b e "portfmt " (current-buffer) t
				      "*portfmt errors*" t))

	   (with-eval-after-load 'make-mode
	     (define-key makefile-bsdmake-mode-map (kbd "C-c p") 'portfmt))

   Kakoune
     Add this to ~/.config/kak/kakrc for filtering the current selection through
     portfmt with ,1:

	   map global user 1 '|portfmt<ret>;' \
		   -docstring "portfmt on selection"

   Vim
     Add  this	to  ~/.vimrc for filtering the current selection through portfmt
     with \1:

	   xnoremap <leader>1 <esc>:'<,'>!portfmt<CR>

ENVIRONMENT
     The following environment variables affect the execution of portfmt:

     CLICOLOR_FORCE  If defined portfmt will output text with ANSI  colors  even
		     when stdout is not a tty or NO_COLOR is set.

     NO_COLOR	     If defined colors will be disabled.

EXIT STATUS
     portfmt will exit with one of the following values:

     0	     Success.

     1	     An error occurred.

     2	     There were changes when compared to the original file.  Only possi-
	     ble with -D.

EXAMPLES
     In-place format /usr/ports/audio/sndio/Makefile:

	   portfmt -i /usr/ports/audio/sndio/Makefile

SEE ALSO
     ports(7)

AUTHORS
     Tobias Kortkamp <tobik@FreeBSD.org>

FreeBSD ports 15.quarterly     September 19, 2021		      PORTFMT(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=portfmt&sektion=1&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help