+# Determine the mode from its name.
+if mode_name == 'rm' then
+ mode = :rm
+elsif mode_name == 'mv' then
+ mode = :mv
+end
+
+# Since we removed the mode name (if it existed) from ARGV, what
+# remains should be the required arguments. Figure out if we have the
+# wrong number of arguments, and store the associated error message in
+# args_error_message if necessary.
+args_error_message = nil
+
+if mode == :prune and ARGV.length() != 0 then
+ args_error_message = "ERROR: prune mode takes no additional arguments."
+elsif mode == :rm and ARGV.length() < 1 then
+ args_error_message = "ERROR: rm mode takes two or more user arguments."
+elsif mode == :mv and ARGV.length() != 2 then
+ args_error_message = "ERROR: mv mode takes exactly two user arguments."
+end
+
+# If we got the wrong number of arguments, we'll have an error message
+# here. Report it and exit with a failure code.
+if not args_error_message.nil? then
+ STDERR.puts args_error_message
+ puts "Usage: #{UserInterface.usage(program_name)}"
+ Kernel.exit(ExitCodes::BAD_COMMAND_LINE)
+end
+
+
+# Load each of the plugins that we'll need.
+cfg = Configuration.new()