func addAllFiles(cli *client.Client, clientDir string, lastIndexed time.Time) filepath.WalkFunc {
	return func(path string, info os.FileInfo, err error) error {
		if info.IsDir() && (info.Name()[0] == '.' || info.ModTime().Before(lastIndexed)) {
			return filepath.SkipDir
		} else if !info.IsDir() && info.Name()[0] != '.' {
			if info.ModTime().After(lastIndexed) {
				cli.AddFile(clientDir, path)
				if *verbose {
					fmt.Println("Added:", path)
				}
			}
		}
		return nil
	}
}
addAllFiles adds all the non-hidden files that have been modified after
`lastIndexed`.
package main
import (
	"bufio"
	"flag"
	"fmt"
	"io/ioutil"
	"os"
	"path/filepath"
	"strings"
	"time"
	"github.com/keybase/search/client"
	"golang.org/x/net/context"
)
var lenSalt = flag.Int("len_salt", 8, "the length of the salts used to generate the PRFs")
var fpRate = flag.Float64("fp_rate", 0.000001, "the desired false positive rate for searchable encryption")
var numUniqWords = flag.Uint64("num_words", uint64(100000), "the expected number of unique words in all the documents within one TLF")
var clientDirectories = flag.String("client_dirs", "", "the keybase directories for the client where the files should be indexed, separated by ';'")
var port = flag.Int("port", 8022, "the port that the search server is listening on")
var ipAddr = flag.String("ip_addr", "127.0.0.1", "the IP address that the search server is listening on")
var lenMS = flag.Int("len_ms", 64, "the length of the master secret")
var verbose = flag.Bool("v", false, "whether log outputs should be printed out")