# frozen_string_literal: true module Bridgetown module Deprecator extend self def process(args) arg_is_present? args, "--server", "The --server command has been replaced by the \ 'serve' subcommand." arg_is_present? args, "--serve", "The --serve command has been replaced by the \ 'serve' subcommand." arg_is_present? args, "--no-server", "To build Bridgetown without launching a server, \ use the 'build' subcommand." arg_is_present? args, "--auto", "The switch '--auto' has been replaced with \ '--watch'." arg_is_present? args, "--no-auto", "To disable auto-replication, simply leave off \ the '--watch' switch." arg_is_present? args, "--url", "The 'url' setting can only be set in your \ config files." no_subcommand(args) end def no_subcommand(args) unless args.empty? || args.first !~ %r(!/^--/!) || %w(--help --version).include?(args.first) deprecation_message "Bridgetown now uses subcommands instead of just switches. \ Run `bridgetown help` to find out more." abort end end def arg_is_present?(args, deprecated_argument, message) deprecation_message(message) if args.include?(deprecated_argument) end def deprecation_message(message) Bridgetown.logger.warn "Deprecation:", message end def defaults_deprecate_type(old, current) Bridgetown.logger.warn "Defaults:", "The '#{old}' type has become '#{current}'." Bridgetown.logger.warn "Defaults:", "Please update your front-matter defaults to use \ 'type: #{current}'." end end end