#github #cli-utility #cli #range #command-line-tool #utility #build #file #handy #clone

app grab_github_permalink

a small CLI utility for grabbing a range of a file on Github

5 releases

0.1.4 Dec 13, 2022
0.1.3 Sep 19, 2022
0.1.2 Sep 19, 2022
0.1.1 Sep 14, 2022
0.1.0 Sep 14, 2022

#1166 in Command line utilities

25 downloads per month

MIT license

14KB
95 lines

grab github permalink

This is a small Rust program that takes a Github permalink, like

https://github.com/torvalds/linux/blob/master/fs/autofs/dev-ioctl.c#L28-L36

and fetches the lines referred to in the #L${start}-L${finish} bit. In the case of that example link it will produce:

typedef int (*ioctl_fn)(struct file *, struct autofs_sb_info *,
			struct autofs_dev_ioctl *);

static int check_name(const char *name)
{
	if (!strchr(name, '/'))
		return -EINVAL;
	return 0;
}

Usage

You can install this from crates.io or clone this repo and build from source, there's nothing fancy going on here build-wise.

Then you can

grab_github_permalink $URL

and it will just spit it to STDOUT. I'd suggest piping to pbcopy or xsel or whatever you have handy!

Markdown mode

If you pass the --markdown / -m flag then it will spit out the code snippet formatted as a Markdown code block with a link to the original. The example link above will come out like this:

fs/autofs/dev-ioctl.c:L28-L36

typedef int (*ioctl_fn)(struct file *, struct autofs_sb_info *,
			struct autofs_dev_ioctl *);

static int check_name(const char *name)
{
	if (!strchr(name, '/'))
		return -EINVAL;
	return 0;
}

Dependencies

~9–17MB
~359K SLoC