scripturetool
Command line tool for accessing Latter-day Saint scripture,
designed for faster lookup.
Scripture resource files are stored as g-zipped json and accessed directly by reference.
References are displayed in less
by default, but the -o
flag
redirects output to stdout.
Flags are also available to display footnotes and headings, or modify formatting.
./scripturetool [flags] <reference>
Reference: "Book chap:vs" or "Book chap" (prints whole chapter) or "Book chap-range" (doesn't accept verse listing) Book Name: "1 Corinthians" (by name) "1-cor" (abbreviated: see below) "{Matt,Mark,Luke}" (listed: abbreviated or not)--Not yet implemented "[OT]" (by class) Chapter Number: "2" (number) "3-5" (range: don't list verses after) "20,84,100" (listed) "*" (all chapters, same as not listing verse)--Not yet implemented Verse Numbers: "2" (number) "3-5" (range) "77,79" (listed) Using * as a chapter will indicate all chapters in the book: John *:12 will indicate the 12th verse of every chapter of John (having at least 12 verses) Using * as a verse is equivalent to listing the chapter number alone: John 17:* is equivalent to John 17
The following grammar defines the structure of a valid scripture reference.
<start> ::= <reference> <referencelist> ';'? <referencelist> ::= ';' <reference> <refrencelist> | ';' | <lambda> <reference> ::= <book> | <book> (<chapter> <chapterlist> | '*') | <book> (<chapter> | '*') ':' (<verse> <verselist> | '*') <book> ::= [::alnum::[]] <string> | '*' <string> ::= []-::alpha::] <string> | <lambda> <lambda> ::= '' <integer> ::= [0-9] <integer> | <lambda> <chapter> ::= <integer> | <integerrange> <chapterlist> ::= ',' <chapter> <chapterlist> | <lambda> <integerrange> ::= <integer> '-' <integer> <verse> ::= <integer> | <integerrange> <verselist> ::= ',' <verse> <verselist> | <lambda>
Abbreviaitons are available so that users don't have to type entire book names, since the point of the tool is to enhance lookup speed.
OLD TESTAMENT [ot] NEW TESTAMENT [nt] Genesis gen Matthew matt Exodous ex Mark mark Leviticus lev Luke luke Deuteronomy deut John john Numbers num Acts acts Joshua jos Romans rom Judges judg 1 Corinthians 1-cor Ruth ruth 2 Corinthians 2-cor 1 Samuel 1-sam Galatians gal 2 Samuel 2-sam Ephesians eph 1 Kings 1-kin Philippians philip 2 Kings 2-kin Colossians col 1 Chronicles 1-chr 1 Thessalonians 1-thes 2 Chronicles 2-chr 2 Thessalonians 2-thes Ezra ezra 1 Timothy 1-tim Nehemiah neh 2 Timothy 2-tim Esther esth Titus titus Job job Philemon philem Psalms ps Hebrews heb Proverbs prov James jas Ecclesiastes eccl 1 Peter 1-pet Song of Solomon song 2 Peter 2-pet Isaiah isa 1 John 1-jn Jeremiah jer 2 John 2-jn Lamentations lam 3 John 3-jn Ezekiel ezek Jude jude Daniel dan Revelation rev Hosea hosea Joel joel BOOK OF MORMON [bom] Amos amos 1 Nephi 1-ne Obadiah obad 2 Nephi 2-ne Jonah jonah Jacob jacob Micah micah Enos enos Nahum nahum Jarom jarom Habakkuk hab Omni omni Zephaniah zeph Words of Mormon w-of-m Haggai hag Mosiah mosiah Zechariah zech Alma alma Malachi mal Helaman hel 3 Nephi 3-ne PEARL OF [pgp] 4 Nephi 4-ne GREAT PRICE Mormon morm Moses moses Ether ether Abraham abr Moroni moro JS-Matthew js-m JS-History js-h DOCTRINE AND [dc] Articles a-of-f COVENANTS of Faith Sections dc
Written in Go
Logging with the
logrus package by sirupsen
Flags and subcommand management with the
cobra package by spf13
Scripture resources scraped from
ChurchOfJesusChrist.org/scriptures