Compare commits
4 Commits
main
...
24a71b7fb0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
24a71b7fb0 | ||
|
|
d4d3e776fd | ||
|
|
6b070aa3c5 | ||
|
|
2b187e4ff7 |
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
.DS_Store
|
||||||
|
/book
|
||||||
|
/src
|
||||||
|
!/src/SUMMARY.md
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
[book]
|
[book]
|
||||||
authors = ["Bel LaPointe"]
|
authors = ["ZachGoldberg"]
|
||||||
language = "en"
|
language = "en"
|
||||||
multilingual = false
|
multilingual = false
|
||||||
src = "src"
|
src = "src"
|
||||||
|
|||||||
65
scrape.sh
Normal file
65
scrape.sh
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
main() (
|
||||||
|
set -ueo pipefail
|
||||||
|
|
||||||
|
if [ ! -f ./raw.md ]; then
|
||||||
|
wget -q -O ./raw.md https://raw.githubusercontent.com/ZachGoldberg/Startup-CTO-Handbook/main/StartupCTOHandbook.md
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
rm -f ./src/* || true
|
||||||
|
mkdir -p ./src
|
||||||
|
|
||||||
|
printf "# Summary\n\n" > ./src/SUMMARY.md
|
||||||
|
|
||||||
|
|
||||||
|
cat ./raw.md \
|
||||||
|
| (
|
||||||
|
n=0
|
||||||
|
n_f() {
|
||||||
|
printf %03d.txt $n
|
||||||
|
}
|
||||||
|
while read -r line; do
|
||||||
|
local depth=$(
|
||||||
|
echo "$line" \
|
||||||
|
| grep -o -E '^[^a-z]*#+ ' \
|
||||||
|
| grep -o '#' \
|
||||||
|
| wc -l \
|
||||||
|
| awk '{print $1}'
|
||||||
|
)
|
||||||
|
case "$depth" in
|
||||||
|
1|2 )
|
||||||
|
n=$((n+1))
|
||||||
|
printf "%s- [%s](%s)\n" \
|
||||||
|
"$(
|
||||||
|
i=0
|
||||||
|
while ((i<depth-1)); do
|
||||||
|
printf " "
|
||||||
|
i=$((i+1))
|
||||||
|
done
|
||||||
|
)" \
|
||||||
|
"${line#* }" \
|
||||||
|
"$(n_f)" \
|
||||||
|
| tee -a ./src/SUMMARY.md >&2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo "$line" | tee -a "./src/$(n_f)" &> /dev/null
|
||||||
|
done
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
mdbook build
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
log() {
|
||||||
|
echo "| $*" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$0" == "$BASH_SOURCE" ]; then
|
||||||
|
main "$@"
|
||||||
|
ret=$?
|
||||||
|
echo ret=$? >&2
|
||||||
|
exit $ret
|
||||||
|
fi
|
||||||
@@ -1,3 +1,42 @@
|
|||||||
# Summary
|
# Summary
|
||||||
|
|
||||||
- [Chapter 1](./chapter_1.md)
|
- [THE STARTUP CTO'S HANDBOOK](001.txt)
|
||||||
|
- [Essential Skills And Best Practices For High Performing Engineering Teams](002.txt)
|
||||||
|
- [By Zach Goldberg](003.txt)
|
||||||
|
- [Dedications](004.txt)
|
||||||
|
- [Praise](005.txt)
|
||||||
|
- [Contents](006.txt)
|
||||||
|
- [Introduction](007.txt)
|
||||||
|
- [The Author](008.txt)
|
||||||
|
- [Using this Book](009.txt)
|
||||||
|
- [Business Processes](010.txt)
|
||||||
|
- [People & Culture](011.txt)
|
||||||
|
- [Management Fundamentals](012.txt)
|
||||||
|
- [Hiring and Interviewing](013.txt)
|
||||||
|
- [Onboarding](014.txt)
|
||||||
|
- [Performance Management](015.txt)
|
||||||
|
- [Team Makeup](016.txt)
|
||||||
|
- [Leadership Responsibilities](017.txt)
|
||||||
|
- [Which Type of Startup CTO Are You?](018.txt)
|
||||||
|
- [Technical Team Management](019.txt)
|
||||||
|
- [Tech Culture and General Philosophy](020.txt)
|
||||||
|
- [Tech Debt](021.txt)
|
||||||
|
- [Technology Roadmap](022.txt)
|
||||||
|
- [Tech Process](023.txt)
|
||||||
|
- [Developer Experience (DX)](024.txt)
|
||||||
|
- [Tech Architecture](025.txt)
|
||||||
|
- [Architecture](026.txt)
|
||||||
|
- [Data And Analytics](027.txt)
|
||||||
|
- [Tools](028.txt)
|
||||||
|
- [DevOps](029.txt)
|
||||||
|
- [Testing](030.txt)
|
||||||
|
- [Source Control](031.txt)
|
||||||
|
- [Production Escalations](032.txt)
|
||||||
|
- [IT](033.txt)
|
||||||
|
- [Security and Compliance](034.txt)
|
||||||
|
- [Conclusion: Measuring Success](035.txt)
|
||||||
|
- [Book References](036.txt)
|
||||||
|
- [Digital References](037.txt)
|
||||||
|
- [Glossary](038.txt)
|
||||||
|
- [About the author](039.txt)
|
||||||
|
- [About the publisher](040.txt)
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
# Chapter 1
|
|
||||||
Reference in New Issue
Block a user