diff --git a/README.md b/README.md index 154bb39..912c731 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ While it does not seek to mirror all of *find*'s powerful functionality, it prov ## Demo -![Demo](./screencast.svg) +![Demo](doc/screencast.svg) ## Benchmark Let's search my home folder for files that end in `[0-9].jpg`. It contains ~150.000 diff --git a/doc/screencast.sh b/doc/screencast.sh new file mode 100644 index 0000000..a4161b4 --- /dev/null +++ b/doc/screencast.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# Designed to be executed via svg-term from the fd root directory: +# svg-term --command="bash doc/screencast.sh" --out doc/screencast.svg --padding=10 +set -e +set -u + +PROMPT="▶" + +enter() { + INPUT=$1 + DELAY=1 + + prompt + sleep "$DELAY" + type "$INPUT" + sleep 0.5 + printf '%b' "\\n" + eval "$INPUT" + type "\\n" +} + +prompt() { + printf '%b ' $PROMPT | pv -q +} + +type() { + printf '%b' "$1" | pv -qL $((10+(-2 + RANDOM%5))) +} + +main() { + IFS='%' + + enter "fd" + + enter "fd app" + + enter "fd sh" + + enter "fd sh --type f" + + enter "fd -e md" + + enter "fd -e md --exec wc -l" + + enter "fd '^[A-Z]'" + + enter "fd --exclude src" + + enter "fd --hidden sample" + + prompt + + sleep 3 + + echo "" + + unset IFS +} + +main diff --git a/doc/screencast.svg b/doc/screencast.svg new file mode 100644 index 0000000..dc2c92b --- /dev/null +++ b/doc/screencast.svg @@ -0,0 +1 @@ +ffdCONTRIBUTING.mdCargo.lockCargo.tomlLICENSE-APACHELICENSE-MITREADME.mdappveyor.ymlbuild.rscici/before_deploy.bashdocdoc/fd.1doc/screencast.shdoc/screencast.svgsrcsrc/app.rssrc/execsrc/exec/command.rssrc/exec/input.rssrc/exec/job.rssrc/exec/mod.rssrc/exec/token.rssrc/exit_codes.rssrc/fshelpersrc/fshelper/mod.rssrc/internal.rssrc/lscolorssrc/lscolors/mod.rssrc/main.rssrc/output.rssrc/walk.rssrc/windows.rsteststests/testenvtests/testenv/mod.rstests/tests.rsfdappfdsfdshfdsh--typefdsh--typeffd-fd-efd-emfd-emdfd-emd--execfd-emd--execwcfd-emd--execwc-l20CONTRIBUTING.md356README.mdfd'^[A-Z]'fd--excludefd--excludesrcfd--hiddenfd--hiddensample.git/hooks/applypatch-msg.sample.git/hooks/commit-msg.sample.git/hooks/fsmonitor-watchman.sample.git/hooks/post-update.sample.git/hooks/pre-applypatch.sample.git/hooks/pre-commit.sample.git/hooks/pre-push.sample.git/hooks/pre-rebase.sample.git/hooks/pre-receive.sample.git/hooks/prepare-commit-msg.sample.git/hooks/update.samplefdafdapfdsh-fdsh--fdsh--tfdsh--tyfdsh--typfd-emd-fd-emd--fd-emd--efd-emd--exfd-emd--exefd-emd--execwfd-emd--execwc-fd'fd'^fd'^[fd'^[Afd'^[A-fd'^[A-Zfd'^[A-Z]fd--efd--exfd--excfd--exclfd--exclufd--excludesfd--excludesrfd--fd--hfd--hifd--hidfd--hiddfd--hiddefd--hiddensfd--hiddensafd--hiddensamfd--hiddensampfd--hiddensampl diff --git a/screencast.sh b/screencast.sh deleted file mode 100644 index 2ca23e1..0000000 --- a/screencast.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/sh -# Designed to be executed via svg-term: -# svg-term --command="sh screencast.sh" --out screencast.svg --padding=10 -set -e -set -u - -PROMPT="▶" - -enter() { - INPUT=$1 - DELAY=$2 - - prompt - sleep $DELAY - type $INPUT - sleep 0.5 - printf '%b' "\n" - eval $INPUT - type "\n" -} - -prompt() { - printf '%b ' $PROMPT | pv -q -} - -type() { - printf '%b' $1 | pv -qL $[10+(-2 + RANDOM%5)] -} - -main() { - IFS='%' - - enter "fd" 0 - - enter "fd -e md" 1 - - enter "fd -e md --exec wc -l" 1 - - enter "fd mod" 1 - - enter "fd sh" 1 - - enter "fd -H sample" 1 - - enter "fd -h" 1 - - prompt - - sleep 3 - - echo "" - - unset IFS -} - -main \ No newline at end of file diff --git a/screencast.svg b/screencast.svg deleted file mode 100644 index 2523702..0000000 --- a/screencast.svg +++ /dev/null @@ -1 +0,0 @@ -ffdCONTRIBUTING.mdCargo.lockCargo.tomlLICENSE-APACHELICENSE-MITREADME.mdappveyor.ymlbuild.rscici/before_deploy.bashdocdoc/fd.1screencast.shscreencast.svgsrcsrc/app.rssrc/execsrc/exec/command.rssrc/exec/input.rssrc/exec/job.rssrc/exec/mod.rssrc/exec/token.rssrc/exit_codes.rssrc/fshelpersrc/fshelper/mod.rssrc/internal.rssrc/lscolorssrc/lscolors/mod.rssrc/main.rssrc/output.rssrc/walk.rssrc/windows.rsteststests/testenvtests/testenv/mod.rstests/tests.rsfd-fd-efd-emfd-emdfd-emd--execfd-emd--execwcfd-emd--execwc-l356README.md20CONTRIBUTING.mdfdmodfdshfd-Hfd-Hsample.git/hooks/applypatch-msg.sample.git/hooks/commit-msg.sample.git/hooks/post-update.sample.git/hooks/pre-applypatch.sample.git/hooks/pre-commit.sample.git/hooks/pre-push.sample.git/hooks/pre-rebase.sample.git/hooks/pre-receive.sample.git/hooks/prepare-commit-msg.sample.git/hooks/update.samplefd-h-p,--full-pathSearchfullpath(default:file-/dirnameonly)-0,--print0Separateresultsbythenullcharacter-h,--helpPrintshelpinformation-V,--versionPrintsversioninformationOPTIONS:-d,--max-depth<depth>Setmaximumsearchdepth(default:none)-t,--type<filetype>...Filterbytype:f(ile),d(irectory),(sym)l(ink)-e,--extension<ext>...Filterbyfileextension-x,--exec<cmd>...Executeacommandforeachsearchresult-E,--exclude<pattern>...Excludeentriesthatmatchthegivenglobpattern-c,--color<when>Whentousecolors:never,*auto*,always-j,--threads<num>Setnumberofthreadstouseforsearching&executingARGS:<pattern>thesearchpattern,aregularexpression(optional)<path>...therootdirectoryforthefilesystemsearch(optional)fd-emd-fd-emd--fd-emd--efd-emd--exfd-emd--exefd-emd--execwfd-emd--execwc-fdmfdmofdsfd-Hsfd-Hsafd-Hsamfd-Hsampfd-Hsamplfd6.2.0USAGE:fd[FLAGS/OPTIONS][<pattern>][<path>...]FLAGS:-H,--hiddenSearchhiddenfilesanddirectories-I,--no-ignoreDonotrespect.(git)ignorefiles--no-ignore-vcsDonotrespect.gitignorefiles-s,--case-sensitiveCase-sensitivesearch(default:smartcase)-i,--ignore-caseCase-insensitivesearch(default:smartcase)-a,--absolute-pathShowabsoluteinsteadofrelativepaths-L,--followFollowsymboliclinks \ No newline at end of file