Anatomy of a Rust Program, Part VIII: Anatomy of a Cargo Build Script

This blog post is the eighth in a series that describes the structure of the wink command line program that I have written in rust and that I use to invoke other Windows and Linux programs from bash and Windows shells under Windows Subsystem for Linux. This post describes the wince Unix sh shell script that I use to build, test, and install the wink program.

#!/bin/sh -x

Use the /bin/sh interpreter and echo invoked commands.

clear

Clear the screen to make it easier to fine the latest output from this wince command.

export RUST_BACKTRACE=full # or 1

Setting the RUST_BACKTRACE environment variable to 1 or full causes rust executables to generate more output.

rustup update

Update the rust tools.

projdir=/mnt/c/temp/wink    # directory containing cargo.toml
winbld='C:\temp\wink.build' # Windows path to directory for building Windows binary
linstall=~/bin              # WSL binary install path
cd $projdir                 # avoid specifying project path for all commands

Specify some paths. It would probably be appropriate to specify $projdir on all command lines, but most command lines are long enough already, and it is redundant.

cmd="cargo check -v --workspace --all-features"
result=$( $cmd 3>&1 1>&2 2>&3 | tee /dev/fd/2 )

The cargo check command is faster than compiling, so a quick way to identify errors before continuing. For unknown reasons, sometimes it fails even though the code is good, but generally works the first or second time. The redirects and tee allow capturing stdout from the command into the result variable.

result=$( find . -type f \( -iname "*.rs" -not -iname "invocablecategory.rs" \) -exec rustfmt -l -v {} \; 3>&1 1>&2 2>&3 | tee /dev/fd/2 )

The rustfmt command applies rust formatting conventions, rewriting the files in place.

rustfmt -l -v --config max_width=2500 ./src/wsl/inv/invocablecategory.rs

The invocablecategory.rs works better with long code lines.

set +x

Do not echo shell commands.

for f in "$(find . -iname \*.rs -print)"; do
    ls -l $f
    wc -clw $f
done

List file sizes and character/line/word counts.

set -x

Echo shell commands.

cargo update -v

Update package dependencies.

cmd='cargo-clippy -v'

The cargo-clippy command suggests code improvements.

cmd="cargo test -v --workspace --all-features --target-dir $linbld -- --nocapture -- -epdv word a b c"

The cargo test command builds a binary with main not defined in /main.rs to invoke tests in /main.rs and code referenced from /main.rs and /lib.rs.

#cargo clean --target-dir /tmp/wink.build       # kills build performance

Cargo clean removes artifacts from prior builds that improve performance for subsequent builds.

cmd="cargo build -v --target-dir $linbld --release"

Cargo build builds any required binaries for the package. I do not use debug build features; I build releases and test in production, which is my desktop.

cargo doc -v --target-dir $linbld               # --open to open in browser

The cargo doc command builds HTML documentation from comments in the code.

ls -l ${linbld}/release/wink            # show WSL binary file size and build date

The binary seems huge relative to the code volume, and not much different from the debug binary, but performs well.

rm ${linstall}/wink                     # remove installed WSL binary
cp ${linbld}/release/wink $linstall     # install new WSL binary

Install the Linux binary. To be honest, WSL could call the Windows binary from a bash shell, or wink could call the Windows binary from a bash shell, or a Windows shell could call bash.exe to invoke the Linux binary of wink, which would be best for putting a finger in Microsoft’s eye for not having migrated Windows to a Linux kernel after Windows NT. It is always better to invoke a binary, or even call wsl.exe or bash.exe, or when needed even wt.exe, rather than cmd.exe or explorer.exe.

cargo.exe build --release --target-dir "$winbld" # --release affects binary path below

Use the Windows version of cargo to build the Windows executable.

`wslpath ${winbld}`/release/wink.exe -ep > ${linbld}/doc/wink/wink.json # export JSON
cp ${linbld}/doc/wink/wink.json .       # copy JSON to project root for github

Use the Windows executable to export JSON, partly as a test, but also for github.

ls -l ${linbld}/doc/wink/wink.json      # show JSON file size and touch time

Show JSON file size and touch time.

path=`cmd.exe /c echo %USERPROFILE% | sed -e 's/\r//g'` # install Windows binary to this directory in %PATH%
path=`wslpath $path | sed -e 's/\r//g'`/AppData/Local/Microsoft/WindowsApps
cp ${lwinbld}/release/wink.exe $path # install Windows binary

Install the Windows binary for cmd.exe and powershell.exe, which I only use for testing.

set +x

Do not echo shell commands.

${linstall}/wink $@ # run Linux build with parameters supplied on command line

Run the Linux binary.

cp /mnt/c/temp/wink/wince $linstall # install any updates to this wince shell script

Install any updates to this script (this line can result in error messages that are usually irrelevant).

cd - > /dev/null # revert to the previous directory
exit 0

Then you just run a command like this and enter the matrix for about 20 seconds.

time wince -vepd word ; time wink -vepd word
output from wince
output from running time wince -vepd word ; time wink -vepd word
+ export RUST_BACKTRACE=full
+ rustup update
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: checking for self-updates

  stable-x86_64-unknown-linux-gnu unchanged - rustc 1.53.0 (53cb7b09b 2021-06-17)

info: cleaning up downloads & tmp directories
+ projdir=/mnt/c/temp/wink
+ linbld=/tmp/wink.build
+ winbld=C:\temp\wink.build
+ wslpath C:\temp\wink.build
+ lwinbld=/mnt/c/temp/wink.build
+ linstall=/home/jw/bin
+ cd /mnt/c/temp/wink
+ cmd=time cargo check -v --workspace --all-features
+ time cargo check -v --workspace --all-features
+ tee /dev/fd/2
       Fresh unicode-xid v0.2.2
       Fresh cfg-if v1.0.0
       Fresh itoa v0.4.7
       Fresh regex-syntax v0.6.25
       Fresh proc-macro2 v1.0.27
       Fresh quote v1.0.9
       Fresh libc v0.2.97
       Fresh memchr v2.4.0
       Fresh ryu v1.0.5
       Fresh syn v1.0.73
       Fresh dirs-sys-next v0.1.2
       Fresh aho-corasick v0.7.18
       Fresh serde_derive v1.0.126
       Fresh dirs-next v2.0.0
       Fresh regex v1.5.4
       Fresh derive-new v0.5.9
       Fresh serde v1.0.126
       Fresh term v0.7.0
       Fresh serde_json v1.0.64
    Checking wink v0.1.0 (/mnt/c/temp/wink)
     Running `rustc --crate-name wink --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 -C metadata=d401c06dfe575890 -C extra-filename=-d401c06dfe575890 --out-dir /tmp/debug/deps -C incremental=/tmp/debug/incremental -L dependency=/tmp/debug/deps --extern derive_new=/tmp/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/debug/deps/libregex-ce229bf00f1a9055.rmeta --extern serde=/tmp/debug/deps/libserde-5e0466a5ac1608e4.rmeta --extern serde_json=/tmp/debug/deps/libserde_json-0895eb5a0ecbdb48.rmeta --extern term=/tmp/debug/deps/libterm-b1d31558e3368d28.rmeta`
     Running `rustc --crate-name wink --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 -C metadata=186c7c3475d472ea -C extra-filename=-186c7c3475d472ea --out-dir /tmp/debug/deps -C incremental=/tmp/debug/incremental -L dependency=/tmp/debug/deps --extern derive_new=/tmp/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/debug/deps/libregex-ce229bf00f1a9055.rmeta --extern serde=/tmp/debug/deps/libserde-5e0466a5ac1608e4.rmeta --extern serde_json=/tmp/debug/deps/libserde_json-0895eb5a0ecbdb48.rmeta --extern term=/tmp/debug/deps/libterm-b1d31558e3368d28.rmeta --extern wink=/tmp/debug/deps/libwink-d401c06dfe575890.rmeta`
    Finished dev [unoptimized + debuginfo] target(s) in 0.94s
0.77user 0.11system 0:01.06elapsed 83%CPU (0avgtext+0avgdata 184256maxresident)k
0inputs+672outputs (0major+46673minor)pagefaults 0swaps
+ result=       Fresh unicode-xid v0.2.2
       Fresh cfg-if v1.0.0
       Fresh itoa v0.4.7
       Fresh regex-syntax v0.6.25
       Fresh proc-macro2 v1.0.27
       Fresh quote v1.0.9
       Fresh libc v0.2.97
       Fresh memchr v2.4.0
       Fresh ryu v1.0.5
       Fresh syn v1.0.73
       Fresh dirs-sys-next v0.1.2
       Fresh aho-corasick v0.7.18
       Fresh serde_derive v1.0.126
       Fresh dirs-next v2.0.0
       Fresh regex v1.5.4
       Fresh derive-new v0.5.9
       Fresh serde v1.0.126
       Fresh term v0.7.0
       Fresh serde_json v1.0.64
    Checking wink v0.1.0 (/mnt/c/temp/wink)
     Running `rustc --crate-name wink --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 -C metadata=d401c06dfe575890 -C extra-filename=-d401c06dfe575890 --out-dir /tmp/debug/deps -C incremental=/tmp/debug/incremental -L dependency=/tmp/debug/deps --extern derive_new=/tmp/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/debug/deps/libregex-ce229bf00f1a9055.rmeta --extern serde=/tmp/debug/deps/libserde-5e0466a5ac1608e4.rmeta --extern serde_json=/tmp/debug/deps/libserde_json-0895eb5a0ecbdb48.rmeta --extern term=/tmp/debug/deps/libterm-b1d31558e3368d28.rmeta`
     Running `rustc --crate-name wink --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 -C metadata=186c7c3475d472ea -C extra-filename=-186c7c3475d472ea --out-dir /tmp/debug/deps -C incremental=/tmp/debug/incremental -L dependency=/tmp/debug/deps --extern derive_new=/tmp/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/debug/deps/libregex-ce229bf00f1a9055.rmeta --extern serde=/tmp/debug/deps/libserde-5e0466a5ac1608e4.rmeta --extern serde_json=/tmp/debug/deps/libserde_json-0895eb5a0ecbdb48.rmeta --extern term=/tmp/debug/deps/libterm-b1d31558e3368d28.rmeta --extern wink=/tmp/debug/deps/libwink-d401c06dfe575890.rmeta`
    Finished dev [unoptimized + debuginfo] target(s) in 0.94s
0.77user 0.11system 0:01.06elapsed 83%CPU (0avgtext+0avgdata 184256maxresident)k
0inputs+672outputs (0major+46673minor)pagefaults 0swaps
+ [ 0 -ne 0 ]
+ echo Fresh unicode-xid v0.2.2 Fresh cfg-if v1.0.0 Fresh itoa v0.4.7 Fresh regex-syntax v0.6.25 Fresh proc-macro2 v1.0.27 Fresh quote v1.0.9 Fresh libc v0.2.97 Fresh memchr v2.4.0 Fresh ryu v1.0.5 Fresh syn v1.0.73 Fresh dirs-sys-next v0.1.2 Fresh aho-corasick v0.7.18 Fresh serde_derive+  v1.0.126 Fresh dirs-next v2.0.0 Fresh regex v1.5.4 Fresh derive-new v0.5.9 Fresh serde v1.0.126 Fresh termegrep v0.7.0 Fresh -qi serde_json v1.0.64 error|warning Checking
 wink v0.1.0 (/mnt/c/temp/wink) Running `rustc --crate-name wink --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 -C metadata=d401c06dfe575890 -C extra-filename=-d401c06dfe575890 --out-dir /tmp/debug/deps -C incremental=/tmp/debug/incremental -L dependency=/tmp/debug/deps --extern derive_new=/tmp/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/debug/deps/libregex-ce229bf00f1a9055.rmeta --extern serde=/tmp/debug/deps/libserde-5e0466a5ac1608e4.rmeta --extern serde_json=/tmp/debug/deps/libserde_json-0895eb5a0ecbdb48.rmeta --extern term=/tmp/debug/deps/libterm-b1d31558e3368d28.rmeta` Running `rustc --crate-name wink --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 -C metadata=186c7c3475d472ea -C extra-filename=-186c7c3475d472ea --out-dir /tmp/debug/deps -C incremental=/tmp/debug/incremental -L dependency=/tmp/debug/deps --extern derive_new=/tmp/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/debug/deps/libregex-ce229bf00f1a9055.rmeta --extern serde=/tmp/debug/deps/libserde-5e0466a5ac1608e4.rmeta --extern serde_json=/tmp/debug/deps/libserde_json-0895eb5a0ecbdb48.rmeta --extern term=/tmp/debug/deps/libterm-b1d31558e3368d28.rmeta --extern wink=/tmp/debug/deps/libwink-d401c06dfe575890.rmeta` Finished dev [unoptimized + debuginfo] target(s) in 0.94s 0.77user 0.11system 0:01.06elapsed 83%CPU (0avgtext+0avgdata 184256maxresident)k 0inputs+672outputs (0major+46673minor)pagefaults 0swaps
+ time time cargo check -v --workspace --all-features
+ tee /dev/fd/2
       Fresh unicode-xid v0.2.2
       Fresh cfg-if v1.0.0
       Fresh itoa v0.4.7
       Fresh regex-syntax v0.6.25
       Fresh proc-macro2 v1.0.27
       Fresh quote v1.0.9
       Fresh libc v0.2.97
       Fresh memchr v2.4.0
       Fresh ryu v1.0.5
       Fresh syn v1.0.73
       Fresh dirs-sys-next v0.1.2
       Fresh aho-corasick v0.7.18
       Fresh serde_derive v1.0.126
       Fresh dirs-next v2.0.0
       Fresh derive-new v0.5.9
       Fresh regex v1.5.4
       Fresh serde v1.0.126
       Fresh term v0.7.0
       Fresh serde_json v1.0.64
       Fresh wink v0.1.0 (/mnt/c/temp/wink)
    Finished dev [unoptimized + debuginfo] target(s) in 0.06s
0.08user 0.00system 0:00.13elapsed 68%CPU (0avgtext+0avgdata 18676maxresident)k
0inputs+0outputs (0major+4848minor)pagefaults 0swaps
0.08user 0.00system 0:00.13elapsed 69%CPU (0avgtext+0avgdata 18676maxresident)k
0inputs+0outputs (0major+4933minor)pagefaults 0swaps
+ result=       Fresh unicode-xid v0.2.2
       Fresh cfg-if v1.0.0
       Fresh itoa v0.4.7
       Fresh regex-syntax v0.6.25
       Fresh proc-macro2 v1.0.27
       Fresh quote v1.0.9
       Fresh libc v0.2.97
       Fresh memchr v2.4.0
       Fresh ryu v1.0.5
       Fresh syn v1.0.73
       Fresh dirs-sys-next v0.1.2
       Fresh aho-corasick v0.7.18
       Fresh serde_derive v1.0.126
       Fresh dirs-next v2.0.0
       Fresh derive-new v0.5.9
       Fresh regex v1.5.4
       Fresh serde v1.0.126
       Fresh term v0.7.0
       Fresh serde_json v1.0.64
       Fresh wink v0.1.0 (/mnt/c/temp/wink)
    Finished dev [unoptimized + debuginfo] target(s) in 0.06s
0.08user 0.00system 0:00.13elapsed 68%CPU (0avgtext+0avgdata 18676maxresident)k
0inputs+0outputs (0major+4848minor)pagefaults 0swaps
0.08user 0.00system 0:00.13elapsed 69%CPU (0avgtext+0avgdata 18676maxresident)k
0inputs+0outputs (0major+4933minor)pagefaults 0swaps
+ [ 0 -ne 0 ]
+ + echoegrep Fresh unicode-xid -qi v0.2.2 error|warning Fresh
 cfg-if v1.0.0 Fresh itoa v0.4.7 Fresh regex-syntax v0.6.25 Fresh proc-macro2 v1.0.27 Fresh quote v1.0.9 Fresh libc v0.2.97 Fresh memchr v2.4.0 Fresh ryu v1.0.5 Fresh syn v1.0.73 Fresh dirs-sys-next v0.1.2 Fresh aho-corasick v0.7.18 Fresh serde_derive v1.0.126 Fresh dirs-next v2.0.0 Fresh derive-new v0.5.9 Fresh regex v1.5.4 Fresh serde v1.0.126 Fresh term v0.7.0 Fresh serde_json v1.0.64 Fresh wink v0.1.0 (/mnt/c/temp/wink) Finished dev [unoptimized + debuginfo] target(s) in 0.06s 0.08user 0.00system 0:00.13elapsed 68%CPU (0avgtext+0avgdata 18676maxresident)k 0inputs+0outputs (0major+4848minor)pagefaults 0swaps 0.08user 0.00system 0:00.13elapsed 69%CPU (0avgtext+0avgdata 18676maxresident)k 0inputs+0outputs (0major+4933minor)pagefaults 0swaps
+ time find . -type f ( -iname *.rs -not -iname invocablecategory.rs ) -exec rustfmt -l -v {} ;
+ tee /dev/fd/2
Formatting /mnt/c/temp/wink/src/helperror.rs
Spent 0.003 secs in the parsing phase, and 0.000 secs in the formatting phase
Formatting /mnt/c/temp/wink/src/helperror.rs
Formatting /mnt/c/temp/wink/src/lib.rs
Formatting /mnt/c/temp/wink/src/winkconfig.rs
Formatting /mnt/c/temp/wink/src/wsl/inv/invocable.rs
Formatting /mnt/c/temp/wink/src/wsl/inv/invocablecategory.rs
/mnt/c/temp/wink/src/wsl/inv/invocablecategory.rs
Formatting /mnt/c/temp/wink/src/wsl/inv/invocablecategorylist.rs
Formatting /mnt/c/temp/wink/src/wsl/inv/invoker.rs
Formatting /mnt/c/temp/wink/src/wsl/inv.rs
Formatting /mnt/c/temp/wink/src/wsl.rs
Spent 0.058 secs in the parsing phase, and 0.025 secs in the formatting phase
Formatting /mnt/c/temp/wink/src/main.rs
Spent 0.004 secs in the parsing phase, and 0.000 secs in the formatting phase
Formatting /mnt/c/temp/wink/src/winkconfig.rs
Spent 0.004 secs in the parsing phase, and 0.002 secs in the formatting phase
Formatting /mnt/c/temp/wink/src/wsl/inv/invocable.rs
Spent 0.003 secs in the parsing phase, and 0.001 secs in the formatting phase
Formatting /mnt/c/temp/wink/src/wsl/inv/invocablecategorylist.rs
Spent 0.002 secs in the parsing phase, and 0.001 secs in the formatting phase
Formatting /mnt/c/temp/wink/src/wsl/inv/invoker.rs
Spent 0.003 secs in the parsing phase, and 0.001 secs in the formatting phase
Formatting /mnt/c/temp/wink/src/wsl/inv/invocable.rs
Formatting /mnt/c/temp/wink/src/wsl/inv/invocablecategory.rs
Formatting /mnt/c/temp/wink/src/wsl/inv/invocablecategorylist.rs
Formatting /mnt/c/temp/wink/src/wsl/inv/invoker.rs
Formatting /mnt/c/temp/wink/src/wsl/inv.rs
Spent 0.025 secs in the parsing phase, and 0.010 secs in the formatting phase
Formatting /mnt/c/temp/wink/src/wsl/inv/invocable.rs
Formatting /mnt/c/temp/wink/src/wsl/inv/invocablecategory.rs
Formatting /mnt/c/temp/wink/src/wsl/inv/invocablecategorylist.rs
Formatting /mnt/c/temp/wink/src/wsl/inv/invoker.rs
Formatting /mnt/c/temp/wink/src/wsl/inv.rs
Formatting /mnt/c/temp/wink/src/wsl.rs
Spent 0.038 secs in the parsing phase, and 0.011 secs in the formatting phase
0.75user 0.22system 0:01.79elapsed 54%CPU (0avgtext+0avgdata 18880maxresident)k
0inputs+0outputs (0major+36887minor)pagefaults 0swaps
+ result=0.75user 0.22system 0:01.79elapsed 54%CPU (0avgtext+0avgdata 18880maxresident)k
0inputs+0outputs (0major+36887minor)pagefaults 0swaps
+ [ 0 -ne 0 ]
+ echo 0.75user 0.22system 0:01.79elapsed 54%CPU (0avgtext+0avgdata+  18880maxresident)k 0inputs+0outputs (0major+36887minor)pagefaults 0swaps
egrep -qi error|warning
+ rustfmt -l -v --config max_width=2500 ./src/wsl/inv/invocablecategory.rs
Formatting /mnt/c/temp/wink/src/wsl/inv/invocablecategory.rs
/mnt/c/temp/wink/src/wsl/inv/invocablecategory.rs
Spent 0.007 secs in the parsing phase, and 0.013 secs in the formatting phase
+ set +x
-rwxrwxrwx 1 jw jw   432 Jun 24 17:01 ./src/helperror.rs
-rwxrwxrwx 1 jw jw  7302 Jun 24 16:17 ./src/lib.rs
-rwxrwxrwx 1 jw jw  1612 Jun 24 16:15 ./src/main.rs
-rwxrwxrwx 1 jw jw  6375 Jun 24 16:32 ./src/winkconfig.rs
-rwxrwxrwx 1 jw jw  3735 Jun 24 17:01 ./src/wsl.rs
-rwxrwxrwx 1 jw jw    94 Jun 21 06:40 ./src/wsl/inv.rs
-rwxrwxrwx 1 jw jw  7081 Jun 23 10:48 ./src/wsl/inv/invocable.rs
-rwxrwxrwx 1 jw jw 53405 Jun 24 20:37 ./src/wsl/inv/invocablecategory.rs
-rwxrwxrwx 1 jw jw  6725 Jun 23 16:30 ./src/wsl/inv/invocablecategorylist.rs
-rwxrwxrwx 1 jw jw  8054 Jun 23 11:05 ./src/wsl/inv/invoker.rs
   22    57   432 ./src/helperror.rs
  218   611  7302 ./src/lib.rs
   26   214  1612 ./src/main.rs
  176   684  6375 ./src/winkconfig.rs
  199   850  7081 ./src/wsl/inv/invocable.rs
  611  3319 53405 ./src/wsl/inv/invocablecategory.rs
  157   490  6725 ./src/wsl/inv/invocablecategorylist.rs
  219   711  8054 ./src/wsl/inv/invoker.rs
    4    12    94 ./src/wsl/inv.rs
  142   403  3735 ./src/wsl.rs
 1774  7351 94815 total
+ cargo update -v
    Updating crates.io index
+ cmd=time cargo-clippy -v
+ time cargo-clippy -v
+ tee /dev/fd/2
    Checking wink v0.1.0 (/mnt/c/temp/wink)
    Finished dev [unoptimized + debuginfo] target(s) in 0.77s
0.64user 0.09system 0:00.89elapsed 82%CPU (0avgtext+0avgdata 174072maxresident)k
0inputs+672outputs (0major+42528minor)pagefaults 0swaps
+ result=    Checking wink v0.1.0 (/mnt/c/temp/wink)
    Finished dev [unoptimized + debuginfo] target(s) in 0.77s
0.64user 0.09system 0:00.89elapsed 82%CPU (0avgtext+0avgdata 174072maxresident)k
0inputs+672outputs (0major+42528minor)pagefaults 0swaps
+ [ 0 -ne 0 ]
+ echo Checking+  wink v0.1.0 (/mnt/c/temp/wink) Finished dev [unoptimized + debuginfo]egrep target(s) -qi in error|warning 0.77s
 0.64user 0.09system 0:00.89elapsed 82%CPU (0avgtext+0avgdata 174072maxresident)k 0inputs+672outputs (0major+42528minor)pagefaults 0swaps
+ cmd=time cargo test -v --workspace --all-features --target-dir /tmp/wink.build -- --nocapture -- -epdv word a b c
+ time cargo test -v --workspace --all-features --target-dir /tmp/wink.build -- --nocapture -- -epdv word a b c
+ tee /dev/fd/2
       Fresh unicode-xid v0.2.2
       Fresh cfg-if v1.0.0
       Fresh itoa v0.4.7
       Fresh regex-syntax v0.6.25
       Fresh proc-macro2 v1.0.27
       Fresh quote v1.0.9
       Fresh libc v0.2.97
       Fresh memchr v2.4.0
       Fresh ryu v1.0.5
       Fresh syn v1.0.73
       Fresh dirs-sys-next v0.1.2
       Fresh aho-corasick v0.7.18
       Fresh serde_derive v1.0.126
       Fresh dirs-next v2.0.0
       Fresh derive-new v0.5.9
       Fresh regex v1.5.4
       Fresh serde v1.0.126
       Fresh term v0.7.0
       Fresh serde_json v1.0.64
   Compiling wink v0.1.0 (/mnt/c/temp/wink)
     Running `rustc --crate-name wink --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --test -C metadata=2c659bbd243ff8ff -C extra-filename=-2c659bbd243ff8ff --out-dir /tmp/wink.build/debug/deps -C incremental=/tmp/wink.build/debug/incremental -L dependency=/tmp/wink.build/debug/deps --extern derive_new=/tmp/wink.build/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/wink.build/debug/deps/libregex-b3cf7363a6486908.rlib --extern serde=/tmp/wink.build/debug/deps/libserde-914d23fcdc0943b9.rlib --extern serde_json=/tmp/wink.build/debug/deps/libserde_json-00a0ad80c3255f73.rlib --extern term=/tmp/wink.build/debug/deps/libterm-7bf2457214a941c6.rlib`
     Running `rustc --crate-name wink --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 -C metadata=8ce63657ac21f2ba -C extra-filename=-8ce63657ac21f2ba --out-dir /tmp/wink.build/debug/deps -C incremental=/tmp/wink.build/debug/incremental -L dependency=/tmp/wink.build/debug/deps --extern derive_new=/tmp/wink.build/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/wink.build/debug/deps/libregex-b3cf7363a6486908.rmeta --extern serde=/tmp/wink.build/debug/deps/libserde-914d23fcdc0943b9.rmeta --extern serde_json=/tmp/wink.build/debug/deps/libserde_json-00a0ad80c3255f73.rmeta --extern term=/tmp/wink.build/debug/deps/libterm-7bf2457214a941c6.rmeta`
     Running `rustc --crate-name wink --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --test -C metadata=442d9986badfd864 -C extra-filename=-442d9986badfd864 --out-dir /tmp/wink.build/debug/deps -C incremental=/tmp/wink.build/debug/incremental -L dependency=/tmp/wink.build/debug/deps --extern derive_new=/tmp/wink.build/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/wink.build/debug/deps/libregex-b3cf7363a6486908.rlib --extern serde=/tmp/wink.build/debug/deps/libserde-914d23fcdc0943b9.rlib --extern serde_json=/tmp/wink.build/debug/deps/libserde_json-00a0ad80c3255f73.rlib --extern term=/tmp/wink.build/debug/deps/libterm-7bf2457214a941c6.rlib --extern wink=/tmp/wink.build/debug/deps/libwink-8ce63657ac21f2ba.rlib`
    Finished test [unoptimized + debuginfo] target(s) in 1.82s
     Running `/tmp/wink.build/debug/deps/wink-2c659bbd243ff8ff --nocapture -- -epdv word a b c`

running 6 tests
thread 'tests::it_has_a_path' panicked at 'it_has_a_path intentional panic to render path to parent of this tests module.', src/lib.rs:216:9
thread 'stack backtrace:
winkconfig::tests::it_has_a_path' panicked at 'it_has_a_path intentional panic to render path to parent of this tests module.', src/winkconfig.rs:wsl::tests::fail()
174:9
wsl::tests::get_user_home_default()
thread 'wsl::tests::fail' panicked at 'wsl::tests::fail()', src/wsl.rs:89:9
test wsl::tests::get_user_home_default ... ok
it_gets_from_command_line_args: {
  "cmd_name": "wink-2c659bbd243ff8ff",
  "verbose": true,
  "dry_run": true,
  "command_code": "word",
  "export": true,
  "pretty_print": true,
  "all_args": [
    "/tmp/wink.build/debug/deps/wink-2c659bbd243ff8ff",
    "--",
    "-epdv",
    "word",
    "a",
    "b",
    "c"
  ],
  "cmd_args": [
    "a",
    "b",
    "c"
  ]
}
     Running `/tmp/wink.build/debug/deps/wink-442d9986badfd864 --nocapture -- -epdv word a b c`

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests wink
     Running `rustdoc --edition=2018 --crate-type lib --crate-name wink --test /mnt/c/temp/wink/src/lib.rs -L dependency=/tmp/wink.build/debug/deps -L dependency=/tmp/wink.build/debug/deps --test-args --nocapture --test-args -- --test-args -epdv --test-args word --test-args a --test-args b --test-args c --extern derive_new=/tmp/wink.build/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/wink.build/debug/deps/libregex-b3cf7363a6486908.rlib --extern serde=/tmp/wink.build/debug/deps/libserde-914d23fcdc0943b9.rlib --extern serde_json=/tmp/wink.build/debug/deps/libserde_json-00a0ad80c3255f73.rlib --extern term=/tmp/wink.build/debug/deps/libterm-7bf2457214a941c6.rlib --extern wink=/tmp/wink.build/debug/deps/libwink-8ce63657ac21f2ba.rlib -C embed-bitcode=no --error-format human`

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

4.17user 0.65system 0:02.10elapsed 229%CPU (0avgtext+0avgdata 247328maxresident)k
0inputs+69696outputs (0major+104425minor)pagefaults 0swaps
+ result=       Fresh unicode-xid v0.2.2
       Fresh cfg-if v1.0.0
       Fresh itoa v0.4.7
       Fresh regex-syntax v0.6.25
       Fresh proc-macro2 v1.0.27
       Fresh quote v1.0.9
       Fresh libc v0.2.97
       Fresh memchr v2.4.0
       Fresh ryu v1.0.5
       Fresh syn v1.0.73
       Fresh dirs-sys-next v0.1.2
       Fresh aho-corasick v0.7.18
       Fresh serde_derive v1.0.126
       Fresh dirs-next v2.0.0
       Fresh derive-new v0.5.9
       Fresh regex v1.5.4
       Fresh serde v1.0.126
       Fresh term v0.7.0
       Fresh serde_json v1.0.64
   Compiling wink v0.1.0 (/mnt/c/temp/wink)
     Running `rustc --crate-name wink --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --test -C metadata=2c659bbd243ff8ff -C extra-filename=-2c659bbd243ff8ff --out-dir /tmp/wink.build/debug/deps -C incremental=/tmp/wink.build/debug/incremental -L dependency=/tmp/wink.build/debug/deps --extern derive_new=/tmp/wink.build/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/wink.build/debug/deps/libregex-b3cf7363a6486908.rlib --extern serde=/tmp/wink.build/debug/deps/libserde-914d23fcdc0943b9.rlib --extern serde_json=/tmp/wink.build/debug/deps/libserde_json-00a0ad80c3255f73.rlib --extern term=/tmp/wink.build/debug/deps/libterm-7bf2457214a941c6.rlib`
     Running `rustc --crate-name wink --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 -C metadata=8ce63657ac21f2ba -C extra-filename=-8ce63657ac21f2ba --out-dir /tmp/wink.build/debug/deps -C incremental=/tmp/wink.build/debug/incremental -L dependency=/tmp/wink.build/debug/deps --extern derive_new=/tmp/wink.build/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/wink.build/debug/deps/libregex-b3cf7363a6486908.rmeta --extern serde=/tmp/wink.build/debug/deps/libserde-914d23fcdc0943b9.rmeta --extern serde_json=/tmp/wink.build/debug/deps/libserde_json-00a0ad80c3255f73.rmeta --extern term=/tmp/wink.build/debug/deps/libterm-7bf2457214a941c6.rmeta`
     Running `rustc --crate-name wink --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --test -C metadata=442d9986badfd864 -C extra-filename=-442d9986badfd864 --out-dir /tmp/wink.build/debug/deps -C incremental=/tmp/wink.build/debug/incremental -L dependency=/tmp/wink.build/debug/deps --extern derive_new=/tmp/wink.build/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/wink.build/debug/deps/libregex-b3cf7363a6486908.rlib --extern serde=/tmp/wink.build/debug/deps/libserde-914d23fcdc0943b9.rlib --extern serde_json=/tmp/wink.build/debug/deps/libserde_json-00a0ad80c3255f73.rlib --extern term=/tmp/wink.build/debug/deps/libterm-7bf2457214a941c6.rlib --extern wink=/tmp/wink.build/debug/deps/libwink-8ce63657ac21f2ba.rlib`
    Finished test [unoptimized + debuginfo] target(s) in 1.82s
     Running `/tmp/wink.build/debug/deps/wink-2c659bbd243ff8ff --nocapture -- -epdv word a b c`
thread 'tests::it_has_a_path' panicked at 'it_has_a_path intentional panic to render path to parent of this tests module.', src/lib.rs:216:9
thread 'stack backtrace:
winkconfig::tests::it_has_a_path' panicked at 'it_has_a_path intentional panic to render path to parent of this tests module.', src/winkconfig.rs:174:9
thread 'wsl::tests::fail' panicked at 'wsl::tests::fail()', src/wsl.rs:89:9
     Running `/tmp/wink.build/debug/deps/wink-442d9986badfd864 --nocapture -- -epdv word a b c`
   Doc-tests wink
     Running `rustdoc --edition=2018 --crate-type lib --crate-name wink --test /mnt/c/temp/wink/src/lib.rs -L dependency=/tmp/wink.build/debug/deps -L dependency=/tmp/wink.build/debug/deps --test-args --nocapture --test-args -- --test-args -epdv --test-args word --test-args a --test-args b --test-args c --extern derive_new=/tmp/wink.build/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/wink.build/debug/deps/libregex-b3cf7363a6486908.rlib --extern serde=/tmp/wink.build/debug/deps/libserde-914d23fcdc0943b9.rlib --extern serde_json=/tmp/wink.build/debug/deps/libserde_json-00a0ad80c3255f73.rlib --extern term=/tmp/wink.build/debug/deps/libterm-7bf2457214a941c6.rlib --extern wink=/tmp/wink.build/debug/deps/libwink-8ce63657ac21f2ba.rlib -C embed-bitcode=no --error-format human`
4.17user 0.65system 0:02.10elapsed 229%CPU (0avgtext+0avgdata 247328maxresident)k
0inputs+69696outputs (0major+104425minor)pagefaults 0swaps
+ [ 0 -ne 0 ]
+ egrep -qi could not compile|warning|test result. FAILED|error. test failed
+ echo Fresh unicode-xid v0.2.2 Fresh cfg-if v1.0.0 Fresh itoa v0.4.7 Fresh regex-syntax v0.6.25 Fresh proc-macro2 v1.0.27 Fresh quote v1.0.9 Fresh libc v0.2.97 Fresh memchr v2.4.0 Fresh ryu v1.0.5 Fresh syn v1.0.73 Fresh dirs-sys-next v0.1.2 Fresh aho-corasick v0.7.18 Fresh serde_derive v1.0.126 Fresh dirs-next v2.0.0 Fresh derive-new v0.5.9 Fresh regex v1.5.4 Fresh serde v1.0.126 Fresh term v0.7.0 Fresh serde_json v1.0.64 Compiling wink v0.1.0 (/mnt/c/temp/wink) Running `rustc --crate-name wink --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --test -C metadata=2c659bbd243ff8ff -C extra-filename=-2c659bbd243ff8ff --out-dir /tmp/wink.build/debug/deps -C incremental=/tmp/wink.build/debug/incremental -L dependency=/tmp/wink.build/debug/deps --extern derive_new=/tmp/wink.build/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/wink.build/debug/deps/libregex-b3cf7363a6486908.rlib --extern serde=/tmp/wink.build/debug/deps/libserde-914d23fcdc0943b9.rlib --extern serde_json=/tmp/wink.build/debug/deps/libserde_json-00a0ad80c3255f73.rlib --extern term=/tmp/wink.build/debug/deps/libterm-7bf2457214a941c6.rlib` Running `rustc --crate-name wink --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 -C metadata=8ce63657ac21f2ba -C extra-filename=-8ce63657ac21f2ba --out-dir /tmp/wink.build/debug/deps -C incremental=/tmp/wink.build/debug/incremental -L dependency=/tmp/wink.build/debug/deps --extern derive_new=/tmp/wink.build/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/wink.build/debug/deps/libregex-b3cf7363a6486908.rmeta --extern serde=/tmp/wink.build/debug/deps/libserde-914d23fcdc0943b9.rmeta --extern serde_json=/tmp/wink.build/debug/deps/libserde_json-00a0ad80c3255f73.rmeta --extern term=/tmp/wink.build/debug/deps/libterm-7bf2457214a941c6.rmeta` Running `rustc --crate-name wink --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --test -C metadata=442d9986badfd864 -C extra-filename=-442d9986badfd864 --out-dir /tmp/wink.build/debug/deps -C incremental=/tmp/wink.build/debug/incremental -L dependency=/tmp/wink.build/debug/deps --extern derive_new=/tmp/wink.build/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/wink.build/debug/deps/libregex-b3cf7363a6486908.rlib --extern serde=/tmp/wink.build/debug/deps/libserde-914d23fcdc0943b9.rlib --extern serde_json=/tmp/wink.build/debug/deps/libserde_json-00a0ad80c3255f73.rlib --extern term=/tmp/wink.build/debug/deps/libterm-7bf2457214a941c6.rlib --extern wink=/tmp/wink.build/debug/deps/libwink-8ce63657ac21f2ba.rlib` Finished test [unoptimized + debuginfo] target(s) in 1.82s Running `/tmp/wink.build/debug/deps/wink-2c659bbd243ff8ff --nocapture -- -epdv word a b c` thread 'tests::it_has_a_path' panicked at 'it_has_a_path intentional panic to render path to parent of this tests module.', src/lib.rs:216:9 thread 'stack backtrace: winkconfig::tests::it_has_a_path' panicked at 'it_has_a_path intentional panic to render path to parent of this tests module.', src/winkconfig.rs:174:9 thread 'wsl::tests::fail' panicked at 'wsl::tests::fail()', src/wsl.rs:89:9 Running `/tmp/wink.build/debug/deps/wink-442d9986badfd864 --nocapture -- -epdv word a b c` Doc-tests wink Running `rustdoc --edition=2018 --crate-type lib --crate-name wink --test /mnt/c/temp/wink/src/lib.rs -L dependency=/tmp/wink.build/debug/deps -L dependency=/tmp/wink.build/debug/deps --test-args --nocapture --test-args -- --test-args -epdv --test-args word --test-args a --test-args b --test-args c --extern derive_new=/tmp/wink.build/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/wink.build/debug/deps/libregex-b3cf7363a6486908.rlib --extern serde=/tmp/wink.build/debug/deps/libserde-914d23fcdc0943b9.rlib --extern serde_json=/tmp/wink.build/debug/deps/libserde_json-00a0ad80c3255f73.rlib --extern term=/tmp/wink.build/debug/deps/libterm-7bf2457214a941c6.rlib --extern wink=/tmp/wink.build/debug/deps/libwink-8ce63657ac21f2ba.rlib -C embed-bitcode=no --error-format human` 4.17user 0.65system 0:02.10elapsed 229%CPU (0avgtext+0avgdata 247328maxresident)k 0inputs+69696outputs (0major+104425minor)pagefaults 0swaps
+ cmd=time cargo build -v --target-dir /tmp/wink.build --release
+ time cargo build -v --target-dir /tmp/wink.build --release
+ tee /dev/fd/2
       Fresh unicode-xid v0.2.2
       Fresh cfg-if v1.0.0
       Fresh regex-syntax v0.6.25
       Fresh itoa v0.4.7
       Fresh proc-macro2 v1.0.27
       Fresh quote v1.0.9
       Fresh libc v0.2.97
       Fresh memchr v2.4.0
       Fresh ryu v1.0.5
       Fresh syn v1.0.73
       Fresh dirs-sys-next v0.1.2
       Fresh aho-corasick v0.7.18
       Fresh serde_derive v1.0.126
       Fresh dirs-next v2.0.0
       Fresh regex v1.5.4
       Fresh derive-new v0.5.9
       Fresh serde v1.0.126
       Fresh term v0.7.0
       Fresh serde_json v1.0.64
   Compiling wink v0.1.0 (/mnt/c/temp/wink)
     Running `rustc --crate-name wink --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C metadata=4cb40f2fac1cd51f -C extra-filename=-4cb40f2fac1cd51f --out-dir /tmp/wink.build/release/deps -L dependency=/tmp/wink.build/release/deps --extern derive_new=/tmp/wink.build/release/deps/libderive_new-590e687adc52fd7b.so --extern regex=/tmp/wink.build/release/deps/libregex-d77a181d4ffe1a8f.rmeta --extern serde=/tmp/wink.build/release/deps/libserde-2032a7dd4fa55574.rmeta --extern serde_json=/tmp/wink.build/release/deps/libserde_json-a846dacdde46c89d.rmeta --extern term=/tmp/wink.build/release/deps/libterm-b564b897c8d84976.rmeta`
     Running `rustc --crate-name wink --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no -C metadata=64fa342bc94534f1 -C extra-filename=-64fa342bc94534f1 --out-dir /tmp/wink.build/release/deps -L dependency=/tmp/wink.build/release/deps --extern derive_new=/tmp/wink.build/release/deps/libderive_new-590e687adc52fd7b.so --extern regex=/tmp/wink.build/release/deps/libregex-d77a181d4ffe1a8f.rlib --extern serde=/tmp/wink.build/release/deps/libserde-2032a7dd4fa55574.rlib --extern serde_json=/tmp/wink.build/release/deps/libserde_json-a846dacdde46c89d.rlib --extern term=/tmp/wink.build/release/deps/libterm-b564b897c8d84976.rlib --extern wink=/tmp/wink.build/release/deps/libwink-4cb40f2fac1cd51f.rlib`
    Finished release [optimized] target(s) in 2.72s
9.52user 0.28system 0:02.79elapsed 350%CPU (0avgtext+0avgdata 285136maxresident)k
0inputs+16944outputs (0major+71278minor)pagefaults 0swaps
+ result=       Fresh unicode-xid v0.2.2
       Fresh cfg-if v1.0.0
       Fresh regex-syntax v0.6.25
       Fresh itoa v0.4.7
       Fresh proc-macro2 v1.0.27
       Fresh quote v1.0.9
       Fresh libc v0.2.97
       Fresh memchr v2.4.0
       Fresh ryu v1.0.5
       Fresh syn v1.0.73
       Fresh dirs-sys-next v0.1.2
       Fresh aho-corasick v0.7.18
       Fresh serde_derive v1.0.126
       Fresh dirs-next v2.0.0
       Fresh regex v1.5.4
       Fresh derive-new v0.5.9
       Fresh serde v1.0.126
       Fresh term v0.7.0
       Fresh serde_json v1.0.64
   Compiling wink v0.1.0 (/mnt/c/temp/wink)
     Running `rustc --crate-name wink --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C metadata=4cb40f2fac1cd51f -C extra-filename=-4cb40f2fac1cd51f --out-dir /tmp/wink.build/release/deps -L dependency=/tmp/wink.build/release/deps --extern derive_new=/tmp/wink.build/release/deps/libderive_new-590e687adc52fd7b.so --extern regex=/tmp/wink.build/release/deps/libregex-d77a181d4ffe1a8f.rmeta --extern serde=/tmp/wink.build/release/deps/libserde-2032a7dd4fa55574.rmeta --extern serde_json=/tmp/wink.build/release/deps/libserde_json-a846dacdde46c89d.rmeta --extern term=/tmp/wink.build/release/deps/libterm-b564b897c8d84976.rmeta`
     Running `rustc --crate-name wink --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no -C metadata=64fa342bc94534f1 -C extra-filename=-64fa342bc94534f1 --out-dir /tmp/wink.build/release/deps -L dependency=/tmp/wink.build/release/deps --extern derive_new=/tmp/wink.build/release/deps/libderive_new-590e687adc52fd7b.so --extern regex=/tmp/wink.build/release/deps/libregex-d77a181d4ffe1a8f.rlib --extern serde=/tmp/wink.build/release/deps/libserde-2032a7dd4fa55574.rlib --extern serde_json=/tmp/wink.build/release/deps/libserde_json-a846dacdde46c89d.rlib --extern term=/tmp/wink.build/release/deps/libterm-b564b897c8d84976.rlib --extern wink=/tmp/wink.build/release/deps/libwink-4cb40f2fac1cd51f.rlib`
    Finished release [optimized] target(s) in 2.72s
9.52user 0.28system 0:02.79elapsed 350%CPU (0avgtext+0avgdata 285136maxresident)k
0inputs+16944outputs (0major+71278minor)pagefaults 0swaps
+ [ 0 -ne 0 ]
+ sed -e s/error.format/3rror.format/g
+ egrep -qi error|warning
+ echo Fresh unicode-xid v0.2.2 Fresh cfg-if v1.0.0 Fresh regex-syntax v0.6.25 Fresh itoa v0.4.7 Fresh proc-macro2 v1.0.27 Fresh quote v1.0.9 Fresh libc v0.2.97 Fresh memchr v2.4.0 Fresh ryu v1.0.5 Fresh syn v1.0.73 Fresh dirs-sys-next v0.1.2 Fresh aho-corasick v0.7.18 Fresh serde_derive v1.0.126 Fresh dirs-next v2.0.0 Fresh regex v1.5.4 Fresh derive-new v0.5.9 Fresh serde v1.0.126 Fresh term v0.7.0 Fresh serde_json v1.0.64 Compiling wink v0.1.0 (/mnt/c/temp/wink) Running `rustc --crate-name wink --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C metadata=4cb40f2fac1cd51f -C extra-filename=-4cb40f2fac1cd51f --out-dir /tmp/wink.build/release/deps -L dependency=/tmp/wink.build/release/deps --extern derive_new=/tmp/wink.build/release/deps/libderive_new-590e687adc52fd7b.so --extern regex=/tmp/wink.build/release/deps/libregex-d77a181d4ffe1a8f.rmeta --extern serde=/tmp/wink.build/release/deps/libserde-2032a7dd4fa55574.rmeta --extern serde_json=/tmp/wink.build/release/deps/libserde_json-a846dacdde46c89d.rmeta --extern term=/tmp/wink.build/release/deps/libterm-b564b897c8d84976.rmeta` Running `rustc --crate-name wink --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no -C metadata=64fa342bc94534f1 -C extra-filename=-64fa342bc94534f1 --out-dir /tmp/wink.build/release/deps -L dependency=/tmp/wink.build/release/deps --extern derive_new=/tmp/wink.build/release/deps/libderive_new-590e687adc52fd7b.so --extern regex=/tmp/wink.build/release/deps/libregex-d77a181d4ffe1a8f.rlib --extern serde=/tmp/wink.build/release/deps/libserde-2032a7dd4fa55574.rlib --extern serde_json=/tmp/wink.build/release/deps/libserde_json-a846dacdde46c89d.rlib --extern term=/tmp/wink.build/release/deps/libterm-b564b897c8d84976.rlib --extern wink=/tmp/wink.build/release/deps/libwink-4cb40f2fac1cd51f.rlib` Finished release [optimized] target(s) in 2.72s 9.52user 0.28system 0:02.79elapsed 350%CPU (0avgtext+0avgdata 285136maxresident)k 0inputs+16944outputs (0major+71278minor)pagefaults 0swaps
+ time cargo doc -v --target-dir /tmp/wink.build
       Fresh unicode-xid v0.2.2
       Fresh cfg-if v1.0.0
       Fresh regex-syntax v0.6.25
       Fresh itoa v0.4.7
       Fresh proc-macro2 v1.0.27
       Fresh quote v1.0.9
       Fresh libc v0.2.97
       Fresh memchr v2.4.0
       Fresh ryu v1.0.5
       Fresh syn v1.0.73
       Fresh dirs-sys-next v0.1.2
       Fresh aho-corasick v0.7.18
       Fresh serde_derive v1.0.126
       Fresh dirs-next v2.0.0
       Fresh regex v1.5.4
       Fresh derive-new v0.5.9
       Fresh serde v1.0.126
       Fresh term v0.7.0
       Fresh serde_json v1.0.64
 Documenting wink v0.1.0 (/mnt/c/temp/wink)
     Running `rustdoc --edition=2018 --crate-type lib --crate-name wink src/lib.rs -o /tmp/wink.build/doc --error-format=json --json=diagnostic-rendered-ansi -L dependency=/tmp/wink.build/debug/deps --extern derive_new=/tmp/wink.build/debug/deps/libderive_new-f4a32d1b166a72c0.so --extern regex=/tmp/wink.build/debug/deps/libregex-ce229bf00f1a9055.rmeta --extern serde=/tmp/wink.build/debug/deps/libserde-5e0466a5ac1608e4.rmeta --extern serde_json=/tmp/wink.build/debug/deps/libserde_json-0895eb5a0ecbdb48.rmeta --extern term=/tmp/wink.build/debug/deps/libterm-b1d31558e3368d28.rmeta --crate-version 0.1.0`
    Finished dev [unoptimized + debuginfo] target(s) in 4.59s
0.89user 0.61system 0:04.68elapsed 32%CPU (0avgtext+0avgdata 319932maxresident)k
0inputs+8608outputs (0major+19940minor)pagefaults 0swaps
+ ls -l /tmp/wink.build/release/wink
-rwxr-xr-x 2 jw jw 5564440 Jun 24 20:37 /tmp/wink.build/release/wink
+ rm /home/jw/bin/wink
+ cp /tmp/wink.build/release/wink /home/jw/bin
+ time cargo.exe build --release --target-dir C:\temp\wink.build
   Compiling wink v0.1.0 (C:\temp\wink)
    Finished release [optimized] target(s) in 4.16s
0.00user 0.02system 0:04.43elapsed 0%CPU (0avgtext+0avgdata 1012maxresident)k
0inputs+0outputs (0major+85minor)pagefaults 0swaps
+ wslpath C:\temp\wink.build
+ /mnt/c/temp/wink.build/release/wink.exe -ep
+ ls -l /tmp/wink.build/doc/wink/wink.json
-rw-r--r-- 1 jw jw 168719 Jun 24 20:37 /tmp/wink.build/doc/wink/wink.json
+ cp /tmp/wink.build/doc/wink/wink.json .
+ cmd.exe /c echo %USERPROFILE%
+ sed -e s/\r//g
+ path=C:\Users\ms
+ wslpath C:\Users\ms
+ sed -e s/\r//g
+ path=/mnt/c/Users/ms/AppData/Local/Microsoft/WindowsApps
+ cp /mnt/c/temp/wink.build/release/wink.exe /mnt/c/Users/ms/AppData/Local/Microsoft/WindowsApps
+ time /home/jw/bin/wink -vepd word
{
  "command_code": "word",
  "description": "Microsoft Word",
  "command": "$pf64/Microsoft Office/root/Office16/WINWORD.EXE",
  "use_cmd": false,
  "use_start": false,
  "background": false,
  "use_call": false,
  "use_explorer": false,
  "use_bash": false,
  "arguments": []
}
/mnt/c/Program Files/Microsoft Office/root/Office16/WINWORD.EXE
0.03user 0.00system 0:00.16elapsed 25%CPU (0avgtext+0avgdata 3492maxresident)k
3816inputs+0outputs (20major+497minor)pagefaults 0swaps
+ cp /mnt/c/temp/wink/wince /home/jw/bin
+ cd -
+ exit 0

real    0m19.822s
user    0m17.165s
sys     0m2.292s
{
  "command_code": "word",
  "description": "Microsoft Word",
  "command": "$pf64/Microsoft Office/root/Office16/WINWORD.EXE",
  "use_cmd": false,
  "use_start": false,
  "background": false,
  "use_call": false,
  "use_explorer": false,
  "use_bash": false,
  "arguments": []
}
/mnt/c/Program Files/Microsoft Office/root/Office16/WINWORD.EXE

real    0m0.108s
user    0m0.010s
sys     0m0.009s

Or with no command line arguments, just wince.

output from wince

Here is the current complete output from wink help. Yes, I see many typos in all of this too.

[2021-06-24 22:08:37]:jw@HAL9000-6WQ9TQ2:/mnt/c/temp/wink
$ wink -help

-----------------------------------------------------------------------------
        wink : access  Windows and WSL features : Help requested by -help
-----------------------------------------------------------------------------
        wink : invoked as : wink -help
-----------------------------------------------------------------------------
        wink EXP                explorer.exe
-----------------------------------------------------------------------------
        wink EXP <file.ext>     Set/open default application for extension
        wink EXP <shell:sendto> Invoke command code (replace <shell:sendto>)
-----------------------------------------------------------------------------

-----------------------------------------------------------------------------
        wink CMD                cmd.exe /c
-----------------------------------------------------------------------------
        wink CMD <cmd> [args]   Invoke Windows console command line
        wink CMD echo %PATH%    Display Windows environment variable
-----------------------------------------------------------------------------

-----------------------------------------------------------------------------
        wink BASH               bash.exe -c
-----------------------------------------------------------------------------
        wink BASH /path [args]  Invoke shell command line
        wink BASH echo '$USER'  Display WSL environment variable
-----------------------------------------------------------------------------

-----------------------------------------------------------------------------
        wink CODE [args]        See command code tables below
-----------------------------------------------------------------------------

Applications
-----------------------------------------------------------------------------
                             7Z 7-Zip compressed file manager
                       AUDACITY Audacity audio file editor
                       DESKPINS DeskPins
                        DOTPEEK JetBrains dotPeek .NET disassembler
                           EDGE Microsoft Edge
                          EMAIL Default email program
                        FIREFOX Mozilla Firefox browser
                            FLP Agent Ransack file search tool
                         FOOBAR Foobar2000 music player
                          IRFAN IfranView Media Viewer
                       KILLSLAK Kill Zoom
                       KILLZOOM Kill Zoom
                        LINQPAD LINQPad for C#
                            MDP MarkdownPad2
                        POSTMAN Postman
                        RANSACK Mozilla Thunderbird email client
                          RIDER JetBrains Rider IDE
                          SKYPE Skype
                          SLACK Slack
                        SPOTIFY Spotify
                            SUB Sublime Text Editor
                             TB Mozilla Thunderbird email client
                          TEAMS Microsoft Teams
                        TRACKME Microsoft Edge
                            VLC VLC Media Player
                             VS Microsoft Visual Studio
                         VSCODE Microsoft Visual Studio Code
                       WINMERGE WinMerge file and directory comparison tool
                           ZOOM Zoom

Ease of Access
-----------------------------------------------------------------------------
                       CAPTIONS Ease of Access closed captioning settings
                        EAAUDIO Ease of Access audio settings
                       EACOLFLT Ease of Access color filter
                         EADISP Ease of Access display settings
                         EAEYEC Ease of Access eye control
                        EAHIGHC Ease of Access high contrast
                         EAKEYB Ease of Access keyboard settings
                          EAMAG Ease of Access magnifier
                        EAMOUSE Ease of Access mouse settings
                          EANAR Ease of Access narrator settings
                           EASE Ease of Access Settings
                       EASPEECH Ease of Access speech recognition settings
                         EATCUR Ease of Access text cursor settings

Features
-----------------------------------------------------------------------------
                       DEFAULTS Default Programs
                       DELIVOPT Microsoft Updates Delivery Optimization Settings
                       FEATURES Optional Apps and Features Settings
                       OPTIONAL Optional Features Settings
                       PROGRAMS Uninstall or Change a Program
                         UPDATE Windows Update
                       UPDATEAH Windows Update Active Hours Settings
                        UPDATEH Windows Update History
                        UPDATEO Windows Update Advanced Option Settingss
                        UPDATER Windows Update Restart Options Settings

Linux
-----------------------------------------------------------------------------
                           BASH Run the Unix command specified on the command line
                          GEDIT gedit (graphical editor)
                           GIMP gimp (image manipulation)
                  GOOGLE-CHROME google-chrome (browser)
                       GOWINDOW GoWindow (God Mode)
                           LVLC Linux VLC (media player)
                 MICROSOFT-EDGE microsoft-edge (brower)
                       NAUTILUS nautilus (file browser)
                          WINCE Run the shell script that recompiles this program
                          XCALC xcalc (calculator)
                         XCLOCK xclock (visual clock)
                          XEYES xeyes (visual eyeballs)
                            XGC xgc (graphics demo)
                          XLOGO xlogo (visual X logo)
                           XMAN xman (man pages)
                          XMORE xmore (read-only text UI)

Locations
-----------------------------------------------------------------------------
                       ACCTPICT shell:AccountPictures
                       ADDNPROG shell:AddNewProgramsFolder
                       ADMTOOLS shell:Common Administrative Tools
                       ALLSTART Common Startup Folder
                        APPDATA shell:AppData
                           APPS Applications folder
                           BURN shell:CD Burning
                       CHNGPROG shell:ChangeRemoveProgramsFolder
                       COMMONPL Common Places
                       CONTACTS shell:Contacts
                        COOKIES shell:Cookies
                          CREDS shell:CredentialManager
                       CRYPKEYS shell:Cryptokeys
                        DESKTOP User desktop folder
                         DOCLIB shell:DocumentsLibrary
                       DOWNLOAD shell:Downloads
                       DPAPIKEY shell:DpAPIKeys
                        EXPSRCH shell:SearchHomeFolder
                           FAVS Favorites folder
                       FONTSDIR shell:Fonts
                           FREQ Frequently accessed folders
                         FSMGMT Shared Folders
                         GAMEXP shell:PublicGameTasks
                        HISTORY shell:History
                        HOMEGRP Home Group folder
                       IMPAPPSC shell:ImplicitAppShortcuts
                       INETCACH shell:cache
                           LIBS shell:Libraries
                          LINKS shell:Links
                           MAIL outlookmail:
                       MEDIASRV Media Servers
                        MSVIDEO microsoftvideo:
                         MYDOCS My Documents
                        MYVIDEO shell:My Video
                             PC This Computer
                        PICTLIB shell:PicturesLibrary
                       PLAYLIST shell:playlists
                        PORTDEV Portable Devices folder
                      PRINTHOOD shell:PrintHood
                       PRINTRSF shell:PrintersFolder
                       PROFILEF shell:Profile
                          PROGF C:\Program Files
                        PROGF86 C:\Program Files (x86)
                         PROGFC C:\Program Files\Common Files
                       PROGFC86 C:\Program Files (x86)\Common Files
                       PROGRAMF shell:Programs
                      PROGRAMSC Shared programs folder
                        PUBDESK Common desktop folder
                        PUBDOCS shell:Common Documents
                        PUBDOWN shell:CommonDownloads
                         PUBLIC shell:Public
                       PUBVIDEO shell:CommonVideo
                          QUICK shell:Quick Launch
                         RECENT shell:recent
                          RECYC Recycle bin folder
                       REMOVABL Removable Devices folder
                       RESOURCE shell:ResourceDir
                       RINGTONC shell:CommonRingtones
                       RINGTONE shell:Ringtones
                       ROAMTILE %USERPROFILE%\AppData\Local\Microsoft\Windows\RoamingTiles
                       SAVEGAME shell:SavedGames
                        SAVELOC Change where new content is saved
                       SEARCHES shell:Searches
                         SENDTO shell:sendto
                       STARTALL shell:Common Start Menu
                        STARTME shell:Start Menu
                        STARTUP User Startup Folder
                          SYS32 shell:System
                          SYS86 shell:Systemx86
                      TEMPLATES shell:templates
                        THISDEV This Device folder
                       UNUPDATE Installed Updates/Uninstall an Update
                       USERPINS shell:User Pinned
                         VIDLIB shell:VideosLibrary
                       WINDOWSF shell:Windows

Microsoft Office
-----------------------------------------------------------------------------
                          EXCEL Microsoft Excel
                             OA Microsoft Outlook Attach File <path>
                             OC Microsoft Outlook Compose
                             OD Microsoft OneDrive
                             OM Microsoft Outlook Compose To <email>
                        ONENOTE Microsoft OneNote
                        OUTLOOK Microsoft Outlook
                            PPT Microsoft PowerPoint
                           WORD Microsoft Word

Miscelaneous
-----------------------------------------------------------------------------
                        INSIDER Microsoft Windows Insider Program
                       QUICKASS Windows Quick Assist
                          SHOWD Show Windows desktop
                        TROUBLE Troubleshooting Windows
                         WINTAB Switch windows (Windows+Tab)
                        WUPDATE Update WSL

Networking
-----------------------------------------------------------------------------
                        ADDNETP Add Network Place
                       ADDPHONE Mobile Devices/Add Phone
                        BLUETOO Bluetooth settings
                         DIALUP Dialup Networking settings
                       ETHERNET Ethernet LAN Cable networking settings
                       FLUSHDNS Flush DNS Cache
                        HOTSPOT Mobile Hotspot Wi-Fi network settings
                       NETAVAIL Available networks
                         NETCON Network Connections folder
                        NETHOOD Network Shortcuts
                       NETSHARE Network and Sharing Center
                        NETSTAT Network status settings
                          PROXY Network Proxy settings
                      REMOTEAPP RemoteApp and Desktop Connections
                            VPN Virtual Private Network settings
                       WHEELSUP Airplane Mode settingse
                       WIFINETS Wi-Fi Network settings
                       WIFISETS Wi-Fi Network settings
                       YURPHONE Mobile Devices/Your Phone

Privacy
-----------------------------------------------------------------------------
                       MICCHECK Microphone privacy settings
                       PAPPDIAG App Diagnostics privacy settings
                       PAUTODWN Automatic File Downloads privacy settings
                       PBACKAPP Background Apps privacy settings
                         PCALLH Call History privacy settings
                         PCALLS Phone Calls privacy settings
                          PCALS Calendar privacy settings
                           PCAM ms-settings:privacy-webcam
                       PCONTACT ms-settings:privacy-contacts
                           PDEV Custom/Other Devices privacy settings
                           PDOC Documents privacy settings
                          PDOCS ms-settings:privacy-documents
                         PEMAIL Email privacy settings
                          PFEED ms-settings:privacy-feedback
                            PFS File system access privacy settings
                          PHIST ms-settings:privacy-activityhistory
                           PMSG Messaging privacy settings
                        PMYINFO Accoung Information privacy settings
                          PNAGS Notifications privacy settings
                          PPICS ms-settings:privacy-pictures
                        PRADIOS ms-settings:privacy-radios
                        PRIVACY Privacy settings control panel
                        PSPEECH ms-settings:privacy-speech
                         PTASKS ms-settings:privacy-tasks
                          PTYPE ms-settings:privacy-speechtyping
                        PVOICEA ms-settings:privacy-voiceactivation
                        SRCHPRM Permissions and History
                        STALKME Location privacy settings

Screen Savers
-----------------------------------------------------------------------------
                          3DTSS 3D Text Screen Saver
                         3DTSSS 3D Text Screen Saver settings
                         3DTSSW 3D Text Screen Saver window
                          BLANK Blank Screen Saver
                        BUBBLES Bubbles Screen Saver
                       BUBBLESS Bubbles Screen Saver settings
                       BUBBLESW Bubbles Screen Saver window
                      DEFAULTSS Default Screen Saver
                        MYSTIFY Mystify Screen Saver
                       MYSTIFYW Mystify Screen Saver window
                        PHOTOSS Photos Screen Saver
                       PHOTOSSS Photos Screen Saver settings
                       PHOTOSSW Photos Screen Saver window
                        RIBBONS Ribbons Screen Saver
                       RIBBONSS Ribbons Screen Saver settings
                       RIBBONSW Ribbons Screen Saver window
                            SSS Screen Saver Settings

Security
-----------------------------------------------------------------------------
                         ADVSEC Advanced firewall security settings
                        AUTHMAN Security Authorization Manager
                        BITLOCK Bitlocker Drive Encryption
                         CERTLM Security Certificate Manager - Local Machine
                        CERTMGR Security Certificate Manager - Current User
                        CREDWIZ Stored Usernames and Passwords
                            EUP Edit User Profiles
                       FACESIGN Face recognition security settings
                       FINGSIGN Fingerprint recognition security settings
                       FIREWALL Firewall security settings
                         GPEDIT Local Group Policy Editor
                        KEYSIGN Security key (USB) security settings
                        LUSRMGR Local Users and Groups
                            PSR Steps Recorder
                       REKEYWIZ Encrypt Filesystem with Certificate
                        SECCNTR Windows Security Center/Security at a Glance
                         SECMAN Security and Maintenance control panel
                         SECPOL Security Policy
                         SIGNIN Security sign-in settings
                       SYSCERTS System Security Certificates
                            UAC UserAccountControlSettings.exe
                         UPSIGN Security dynamic lock settings
                           USER User Accounts
                       USERACTS Security User Accounts
                       USERPASS control.exe
                          USERS User Profiles
                         WINSEC Windows Security Settings

Settings
-----------------------------------------------------------------------------
                          ABOUT About settings
                       ACTIVATE Activate Windows
                       ACTIVATN Windows activation settings
                       AUTOPLAY Autoplay Settings (defaults)
                       AUTOPLYD Autoplay Settings by Device type
                     BACKGROUND Desktop background settings
                         BACKUP Backup settings
                        BATTERY Battery settings
                       CAPTURES Screen capture settings
                            CLP Clipboard settings
                         COLORS Windows Colors settings
                         CONDEV Connected devices (bluetooth and other devices) settings
                        CONTROL Control Panel (small icons)
                         CPCATS Control Panel (categories)
                       CROSSDEV Shared experiences accross devices settings
                        DATAUSE Data usage settings
                       DATETIME Date and time settings
                        DEFAULT Choose default applications settings
                            DEV Developer settings
                        DEVDISC Connectable device discovery settings
                        DEVICES Devices and Printers
                         DEVMAN Device Manager control pane
                        DISPLAY Display settings
                       FILEHIST File History
                        FILEOPT File Explorer settings
                       FINDMYDV Find my device settings
                          FOCUS Quiet hours/focus assist settungs
                       FONTVIEW Font Viewer
                        GAMEBAR Game bar settings
                       GAMEMODE Game mode settings
                       GRAPHICS Advanced graphics settings
                           INET Internet control panel
                           INTL Region
                       ISCSICPL iSCSI
                            JOY Game Controllers control panel
                       KEYBOARD Keyboard settings
                       LANGUAGE Regional language settings
                            LOC Location Information control panel
                           LOCK Lock screen settings
                           MAPS Map settings
                       MORFONTS More Font settings
                          MOUSE Mouse control panel
                       MOUSESET Mouse settings
                       MULTITSK Multitasking settings
                           NAGS Notification settings
                          NIGHT Night light settings
                       OFFLMAPS Offline map settings
                       OLDFONTS Legacy fonts control panel
                       OTHERUSR Other users settings
                            PEN Pen input settings
                        PERFOPT Performance Options
                       PERSONAL Personalization settings
                          POWER Power control panel
                           POWS Power and Sleep settings
                       PRNTSCAN Printer and Scanner settings
                        PROJECT Project (dark gray sidebar at right of screen)
                      PROJECTME Projecting to this PC
                          RDSET ms-settings:remotedesktop
                        RECOVER Recovery settings
                         REGION Regional formatting settings
                        SCALING ms-settings:display-advanced
                       SETEMAIL Email and Accounts settings
                        SETSPCH ms-settings:speech
                       SETSTART ms-settings:startupapps
                       SETTINGS Settings control panel
                       SETVIDEO ms-settings:videoplayback
                       SIGVERIF File Signature Verification
                          SOUND Sound control panel
                       SOUNDDEV ms-settings:sound-devices
                         SOUNDS Sound settings
                         SPEECH Configure your speech recognition experience
                       SRCHSETS Windows Search (Cortana) Settings
                          START Start Menu personalization settings
                       STARTFOL Personalize/choose which folders appear on the start menu
                        STORPOL Storage Policies
                       STORSENS Storage Sense
                         STORSP Manage Storage Spaces
                        SYNCSET Sync Settings...settings
                        SYSPROP Sound Properties control panel
                         TABLET Tablet Mode settings
                        TASKBAR Taskbar settings
                         THEMES Windows Themes settings
                       TIMEDATE Date and Time control panel
                       TOUCHPAD Touchpad settings
                         TYPING Typing settings
                            USB USB settings
                        UTILMAN Utility Manager (display)
                            VOL Volume settings
                        WEBAPPS ms-settings:appsforwebsites
                        WORKPLC Workplace or school settings
                       YOURINFO Your Information

Shutdown
-----------------------------------------------------------------------------
                           BOOT Reboot
                        BOOTOPT Reboot to boot options
                           DOWN Shut down
                       FIRMWARE Reboot to firmware
                            HYB Hybernate
                         LOGOFF Log off
                         SHUTUI Shutdown UI

Sysinternals.com
-----------------------------------------------------------------------------
                       AUTORUNS Identify and control startup processes
                         BGINFO Set desktop background to system information
                       DISKVIEW Disk space usage visualizer
                             DU Disk usage
                         HANDLE List open file handles
                       LISTDLLS List processes and their DLLs
                        PROCEXP Process Explorer
                        PROCMON Process Monitor
                         PSKILL Process killer
                         PSLIST Process lister
                         ZOOMIT crash it, change it, mail – upgrade it, Charge it, point it, zoom it, press it, Snap it, work it, quick – erase it...Technologic

Utilities
-----------------------------------------------------------------------------
                         ALARMS Alarmns & Clock
                        BACKUP7 Windows 7 backup
                       BINGMAPS Bing Maps
                       BINGNEWS Bing News
                            CAL Calendar
                           CALC Calculator
                            CAM Camera
                         CDINFO Crystal Disk Info
                        CHARMAP Character Map
                         CHKDSK Check hard disk for errors and issues
                       CLEANMGR Disk Cleanup
                       CLICONFG SQL Server Client Network Utility
                          CLOCK Clock
                            CMD cmd.exe (see above)
                       COLORCPL Color Management
                       COMPMGMT Computer Management
                        COMSERV Component Services Configuration
                         CTTUNE Clear Type Text Tuner
                        DEVMODE DevModeRunAsUserConfig.msc
                         DFRGUI Optimize Hard Drives
                         DIALER Phone Dialer
                        DISKMAN Disk Management
                       DISKPART Disk partitioner
                       DPAPIMIG Protected Content Migration
                        DVDPLAY DVD player (Windows Media Player)
                         DXDIAG DirectX Diagnostics Tool
                        EDITENV Edit environment variables
                            ENV Show Windows environment
                       EUDCEDIT Private Character Editor
                       EVENTVWR Windows Event Viewer
                            EXP explorer.exe (see above)
                            FAM Ask for permission (family)
                        FAXSCAN Windows Fax and Scan
                        FSQUIRT Bluetooth File Transfer
                       FXSCOVER Fax Cover Page Editor
                         GROOVE Microsoft Groove Music
                         HDWWIZ Add Hardware Wizard
                       IEXPLORE Internet Explorer
                       IEXPRESS Create a Self-Extracting Executable
                        ISOBURN ISO disk burner
                          KIOSK Set up a Kiosk
                       LPKSETUP Language Pack Setup
                        MAGNIFY Screen magnifier
                        MDSCHED Windows Memory Diagnostics
                            MMC Microsoft Management Console
                       MOBILITY Windows Mobility Center
                         MOVIES Microsoft Windows Video (Movies and TV)
                             MP Windows Media Player
                            MRT Malicious Software Removal Tool
                          MSACT Windows Action Center (right dark gray sidebar)
                       MSCONFIG Microsoft Configuration tool
                           MSDT Microsoft Support Diagnostics Tool
                       MSINFO32 System Information
                        NOTEPAD Windows Notepad
                       ODBCCONF odbcconf.exe
                            OSK On-screen keyboard
                          PAINT Windows Paint
                        PAINT3D Paint3D
                         PEOPLE People
                        PERFMON Performance Monitor
                         PHOTOS Photos and Video Editor
                        PRESSET Presentation Settings
                       PRINTMAN Print Management
                       PRINTMIG Printer Migration
                        PRINTUI Print User Interface
                          PSISE PowerShell Integrated Scripting Environment (ISE)
                           PWRD keymgr.dll,PRShowSaveWizardExW
                       RASPHONE Remove Access Phonebook
                             RD Remote Desktop Client
                        RECDISC Create a system repair disk
                       REGEDT32 Windows Registry Editor
                       REMOTEAS Windows Remote Assistance
                         RESMON Windows Resource Monitor
                        RESTORE Restore system files and settings
                           RSOP Resultant Set of Policy
                            RUN Windows Run Dialog
                           SCAN Scan
                          SCLIP Screen capture (Windows+Shift+S)
                       SERVICES Windows Services
                        SHRPUBW Create Shared Folder Wiard
                         SNDVOL Sound and Volume
                       SNIPTOOL SnippingTool
                            SOL Solitare
                       SOUNDREC Sound Recorder
                        SSKETCH Snip and sketch
                       STIKYNOT Sticky Notes
                          STORE Microsoft store
                        SUPPORT Microsoft support
                           SYNC Sync Center
                         TABCAL Digitizer Calibration Tool
                        TASKMGR Windows Task Manager
                       TASKSCHD Windows Task Scheduler
                           TIPS Windows tips / getting started
                            TPM Trusted Platform Module
                        TPM.MSC Trusted Platform Module Management on Local Computer
                       VERIFIER Driver Verifier Manager
                       WINTOOLS Windows Tools
                         WINVER Windows Version
                        WMIMGMT WMI Management
                        WORDPAD Windows Wordpad
                           WUSA Windows Update Standalone Installer

        wink : 459 known command codes

        wink : access Windows features : Help requested by -help

        wink [opts] <CODE> [arguments]
            -d dry (do not execute)
            -e export (configuraiton JSON)
            -p pretty-print (for use with -e)
            -v verbose (print command line)

wink HELP :                  display command usage information
wink HELP | grep -i "text" # identify command code matching text

3 thoughts on “Anatomy of a Rust Program, Part VIII: Anatomy of a Cargo Build Script

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: