# File lib/chef/knife/cookbook_upload.rb, line 42
      def run 
        if config[:cookbook_path]
          Chef::Config[:cookbook_path] = config[:cookbook_path]
        else
          config[:cookbook_path] = Chef::Config[:cookbook_path]
        end

        Chef::Cookbook::FileVendor.on_create { |manifest| Chef::Cookbook::FileSystemFileVendor.new(manifest) }

        cl = Chef::CookbookLoader.new

        humanize_auth_exceptions do
          if config[:all]
            cl.each do |cookbook_name, cookbook|
              Chef::Log.info("** #{cookbook.name.to_s} **")
              Chef::CookbookUploader.upload_cookbook(cookbook)
            end
          else
            if @name_args.length < 1
              show_usage
              Chef::Log.fatal("You must specify the --all flag or at least one cookbook name")
              exit 1
            end
            @name_args.each do |cookbook_name|
              if cl.cookbook_exists?(cookbook_name)
                Chef::CookbookUploader.upload_cookbook(cl[cookbook_name])
              else
                Chef::Log.error("Could not find cookbook #{cookbook_name} in your cookbook path, skipping it")
              end
            end
          end
        end
      end