aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Iezzi <aiezzi@alessandroiezzi.it>2024-04-24 11:50:23 +0200
committerAlessandro Iezzi <aiezzi@alessandroiezzi.it>2024-04-25 11:33:30 +0200
commit94e686f66f749b834ff3e6c50d14b0f12ff457e0 (patch)
tree1a7b6ac190e1b09bc4cfc8241ae0d4576631d694
parentc0f787f5d39382ca2a04f617bfb3e4c66c78fb0b (diff)
downloadhyde-94e686f66f749b834ff3e6c50d14b0f12ff457e0.tar.gz
hyde-94e686f66f749b834ff3e6c50d14b0f12ff457e0.zip
Add HydeOptionParser class
-rwxr-xr-xhyde.rb8
-rw-r--r--optparser.rb33
2 files changed, 38 insertions, 3 deletions
diff --git a/hyde.rb b/hyde.rb
index f80e01c..3e5d6bb 100755
--- a/hyde.rb
+++ b/hyde.rb
@@ -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|