diff options
-rwxr-xr-x | hyde.rb | 8 | ||||
-rw-r--r-- | optparser.rb | 33 |
2 files changed, 38 insertions, 3 deletions
@@ -26,9 +26,14 @@ require_relative 'optparser.rb' class Hyde def self.main + # Parse arguments from the CLI + options = HydeOptionParser.parse end end +Hyde.main +exit + =begin Considerations on file formats. .config -- Are configurations, written in YAML @@ -53,9 +58,6 @@ def listarticles(path, max) return pages end -# Parse arguments from the CLI -options = optparse - # Every file needs a config file. It is similar to the YAML block in head to files processed by gohugo or jekyll. configfile = options[:fileName] + '.config' diff --git a/optparser.rb b/optparser.rb index 27a0708..7740f7f 100644 --- a/optparser.rb +++ b/optparser.rb @@ -14,6 +14,39 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. +class HydeOptionParser + def self.parse + options = {} + optionParser = OptionParser.new do |option| + option.on("-f", "--file-name FILENAME", "File name of the page you want to render") { + |o| options[:fileName] = o + } + option.on("-t", "--title TITLE", "Title of the rendered page") { + |o| options[:title] = o + } + option.on("-m", "--master MASTER", "Master file page") { + |o| options[:master] = o + } + option.on("-n", "--page-name NAME", "Page name") { + |o| options[:pageNames] = o + } + option.on_tail("-h", "--help", "Show this message") do + puts option + exit + end + end + + if ARGV.length < 1 then + puts optionParser.help + exit 1 + end + + optionParser.parse! + + return options + end +end + def optparse options = {} optparse = OptionParser.new do |opt| |