# File lib/nanoc/cli.rb, line 108
  def self.load_custom_commands
    self.recursive_contents_of('commands').each do |filename|
      # Create command
      command = Nanoc::CLI.load_command_at(filename)

      # Get supercommand
      pieces = filename.gsub(/^commands\/|\.rb$/, '').split('/')
      pieces = pieces[0, pieces.size-1] || []
      root = Nanoc::CLI.root_command
      supercommand = pieces.inject(root) do |cmd, piece|
        cmd.nil? ? nil : cmd.command_named(piece)
      end

      # Add to supercommand
      if supercommand.nil?
        raise "Cannot load command at #{filename} because its supercommand cannot be found"
      end
      supercommand.add_command(command)
    end
  end