| 
									
										
										
										
											2019-09-29 21:18:15 -07:00
										 |  |  | #!/usr/bin/env bash
 | 
					
						
							|  |  |  | set -e | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | cd "$(dirname "$0")" | 
					
						
							| 
									
										
										
										
											2020-11-05 06:25:11 +00:00
										 |  |  | cargo="$(readlink -f "./cargo")" | 
					
						
							| 
									
										
										
										
											2019-09-29 21:18:15 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-10 23:11:07 -06:00
										 |  |  | # shellcheck source=ci/rust-version.sh | 
					
						
							|  |  |  | source ../ci/rust-version.sh stable | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-15 17:42:18 -07:00
										 |  |  | : "${rust_stable:=}" # Pacify shellcheck | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-05 06:25:11 +00:00
										 |  |  | usage=$("$cargo" stable -q run -p solana-cli -- -C ~/.foo --help | sed -e 's|'"$HOME"'|~|g' -e 's/[[:space:]]\+$//') | 
					
						
							| 
									
										
										
										
											2019-09-29 21:18:15 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-23 21:21:43 -07:00
										 |  |  | out=${1:-src/cli/usage.md} | 
					
						
							| 
									
										
										
										
											2019-09-29 21:18:15 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-23 21:21:43 -07:00
										 |  |  | cat src/cli/.usage.md.header > "$out" | 
					
						
							| 
									
										
										
										
											2019-09-29 21:18:15 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | section() { | 
					
						
							|  |  |  |   declare mark=${2:-"###"} | 
					
						
							|  |  |  |   declare section=$1 | 
					
						
							|  |  |  |   read -r name rest <<<"$section" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   printf '%s %s | 
					
						
							|  |  |  | ' "$mark" "$name" | 
					
						
							|  |  |  |   printf '```text | 
					
						
							|  |  |  | %s | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ' "$section" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | section "$usage" >> "$out" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-18 23:24:42 -06:00
										 |  |  | usage=$(sed -e '/^ \{5,\}/d' <<<"$usage") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-29 21:18:15 -07:00
										 |  |  | in_subcommands=0 | 
					
						
							|  |  |  | while read -r subcommand rest; do | 
					
						
							|  |  |  |   [[ $subcommand == "SUBCOMMANDS:" ]] && in_subcommands=1 && continue | 
					
						
							|  |  |  |   if ((in_subcommands)); then | 
					
						
							| 
									
										
										
										
											2020-11-05 06:25:11 +00:00
										 |  |  |       section "$("$cargo" stable -q run -p solana-cli -- help "$subcommand" | sed -e 's|'"$HOME"'|~|g' -e 's/[[:space:]]\+$//')" "####" >> "$out" | 
					
						
							| 
									
										
										
										
											2019-09-29 21:18:15 -07:00
										 |  |  |   fi | 
					
						
							|  |  |  | done <<<"$usage">>"$out" |