[BACK]Return to Makefile CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / textproc / jless

File: [cvs.NetBSD.org] / pkgsrc / textproc / jless / Makefile (download)

Revision 1.6, Fri Mar 11 10:22:27 2022 UTC (20 months, 3 weeks ago) by pin
Branch: MAIN
Changes since 1.5: +11 -2 lines

textproc/jless: update to 0.8.0

This new release of jless ships with two major new features: basic YAML support
and copying to clipboard!

jless will now check the file extension of the input file, and automatically
parse .yml and .yaml files as YAML and use the same viewer as for JSON data.
Alternatively passing in a --yaml flag will force jless to parse the input as
YAML and can be used when reading in YAML data from stdin.
(alias yless="jless --yaml" perhaps?) YAML aliases are automatically expanded,
but their corresponding anchors are not visible, nor are comments. YAML supports
non-string keys, and even non-scalar keys in mappings (e.g., the key of map can
be an array with multiple elements). Non-string keys are shown with square
brackets, e.g., [true]: "value", instead of quotes. Non-scalar keys are handled
on the screen and displayed properly, but you cannot expand and collapse their
individual elements.

While navigating data, jless also now supports copying various items to your
system clipboard.

    yy will copy the value of the currently focused node, pretty printed
    yv will copy the value of the currently focused node in a "nicely" printed
    one-line format
    yk will copy the key of the current key/value pair
    yp will copy the path from the root JSON element to the currently focused
    node, e.g., .foo[3].bar
    yb functions like yp, but always uses the bracket form for object keys,
    e.g., ["foo"][3]["bar"], which is useful if the environment where you'll
    paste the path doesn't support the .key format, like in Python
    yq will copy a jq style path that will select the currently focused node,
    e.g., .foo[].bar

This release also includes a couple of new movement commands, and some stability
fixes. The full list of changes can be seen below.
Full list of changes
New features:

    Support displaying YAML files with autodetection via file extension, or
    explicit --yaml or --json flags.
    Support copying values (with yy or yv), object keys (with yk), and paths to
    the currently focused node (with yp, yb or yq).
    Implement ctrl-u and ctrl-d commands to jump up and down by half the
    screen's height, or by a specified number of lines.
    Implement ctrl-b and ctrl-f commands for scrolling up and down by the height
    of the screen. (Aliases for PageUp and PageDown)


    Keep focused line in same place on screen when toggling between line and
    data modes; fix a crash when focused on a closing delimiter and switching to
    data mode.
    Pressing Escape will clear the input buffer and stop highlighting search

Bug Fixes:

    Ignore clicks on the status bar or below rather than focusing on hidden
    lines, and don't re-render the screen, allowing the path in the status bar
    to be highlighted and copied.
    Issue #61: Display error message for unrecognized CSI escape sequences and
    other IO errors instead of panicking.
    Issue #62: Fix broken window resizing / SIGWINCH detection caused by
    clashing signal handler registered by rustyline.
    PR #54: Fix panic when using Ctrl-C or Ctrl-D to cancel entering search

Other Notes:

    Upgraded regex crate to 1.5.5 due to CVE-2022-24713. jless accepts and
    compiles untrusted input as regexes, but you'd only DDOS yourself, so it's
    not terribly threatening vulnerability.

# $NetBSD: Makefile,v 1.6 2022/03/11 10:22:27 pin Exp $

DISTNAME=	jless-0.8.0
CATEGORIES=	textproc

MAINTAINER=	pkgsrc-users@NetBSD.org
HOMEPAGE=	https://github.com/PaulJuliusMartinez/jless/
COMMENT=	Command-line pager for JSON data

.include "cargo-depends.mk"

USE_TOOLS+=			pkg-config


RUSTFLAGS+=	-C link-arg=-L${BUILDLINK_PREFIX.libxcb}/lib

# jless command conflicts with misc/ja-less
# Rename it at install time

	${INSTALL_PROGRAM} ${WRKSRC}/target/release/jless \

.include "../../lang/rust/cargo.mk"
.include "../../x11/libxcb/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"