#!/usr/bin/env ruby require_relative '../lib/wayback_machine_downloader' require 'optparse' require 'pp' options = {} option_parser = OptionParser.new do |opts| opts.banner = "Usage: wayback_machine_downloader http://example.com" opts.separator "" opts.separator "Download any website from the Wayback Machine." opts.separator "" opts.separator "Optional options:" opts.on("-t", "--timestamp TIMESTAMP", Integer, "Only files on or before timestamp supplied (ie. 20150806225358)") do |t| options[:timestamp] = t end opts.on("--accept-regex [ACCEPT_REGEX]", String,"Specify a regular expression to download. If a path doesn't meet this regex, it won't get downloaded.") do |accept_regex| options[:accept_regex] = accept_regex end opts.on("-v", "--version", "Display version") do |t| options[:version] = t end end.parse! # this used to be 0. we want to look at the /last/ option. # # TODO: this argument needs to be handled better. argument handling is sorta messy. if base_url = ARGV[-1] wayback_machine_downloader = WaybackMachineDownloader.new base_url: base_url, timestamp: options[:timestamp], accept_regex: options[:accept_regex] wayback_machine_downloader.download_files elsif options[:version] puts WaybackMachineDownloader::VERSION else puts "You need to specify a website to backup. (e.g., http://example.com)" puts "Run `wayback_machine_downloader --help` for more help." end