master
..
rw-r--r--
5 B
rw-r--r--
3.2 KB
rw-r--r--
140.3 KB

TODO

  • Import sources from:
    • squarespace sitemap
    • squarespace redirects
    • google analytics
    • blog moved files (redirect.yaml)
    • google search console
  • blog.alta3.com needs tags or catigories
    • currently using 302 for:
    • /blog/tag/* -> blog.alta3.com
    • /blog/category/* -> blog.alta3.com
  • posters need migrated to blog.alta3.com/posters
  • aws paths need real target paths
  • routes with query parameters
    • /store?tags={search} -> /courses?search={search}
    • /store?category={search} ->

References

Use

Backup

mkdir -p backup
sqlite3 moved.db '.dump redir' > backup/data.sql

Test repeatable import

sqlite3 moved.db < data.sql

caddy fmt output

sqlite3 moved.db \
    '.mode json' \
    'select * FROM redir' \
    | jq -j -r '
      .[] 
      | "redir ", .src, " ", .dst, " ", .status, "\n"' \
    > artifacts/alta3.com_redir.caddyfile

squarespace sitemap

grep "<loc>" source/sitemap.xml \
  | cut -b 27- \
  | cut -d "<" -f1 \
  | xargs -I {} sqlite3 moved.db \
    'INSERT INTO redir(src) 
     SELECT x FROM (SELECT "{}" AS x) 
     WHERE NOT EXISTS(SELECT src FROM redir WHERE src = "{}");'

Get null values back out:

sqlite3 moved.db 'select src from redir where dst is NULL' > no_redirect/squarespace.txt

google analytics

cut -d ',' -f 1 source/ga.csv \
  | tail --lines=+2 \
  | xargs -I {} sqlite3 moved.db \
    'INSERT INTO redir(src) 
     SELECT x FROM (SELECT "{}" AS x) 
     WHERE NOT EXISTS(SELECT src FROM redir WHERE src = "{}");'

Get null values back out:

sqlite3 moved.db 'select src from redir where dst is NULL' > no_redirect/ga.txt
xargs -a source/google_search.txt -I {} \
  sqlite3 moved.db \
    'INSERT INTO redir(src) 
     SELECT x FROM (SELECT "{}" AS x) 
     WHERE NOT EXISTS(SELECT src FROM redir WHERE src = "{}");'

Get null values back out:

sqlite3 moved.db 'select src from redir where dst is NULL' > no_redirect/google_search.txt

blog sources

# find the new path inside the blogs dir
yq -r -j '.redirects[] | .old, " ", .new, "\n"' < source/redirects.yaml \
  | xargs -n2 bash -c 'echo -n "$0 "; find . -type f -name $1.md' > blogs.txt

Testing

sqlite3 moved.db 'select dst from redir where dst like "%blog.alta3.com%";' \
  | sort -u \
  | xargs -P0 -I {} curl {} -s -o /dev/null -w "%{http_code} %{url} %{redirect_url}\n" \
  > test/blog.txt

test all non-blog

sqlite3 moved.db 'select dst from redir where dst like "%https://%";' \
  | sort -u \
  | grep -v "blog.alta3.com" \
  | xargs -P0 -I {} curl {} -s -o /dev/null -w "%{http_code} %{url} %{redirect_url}\n" \
  > test/domains.txt

test all relative paths

sqlite3 moved.db 'select dst from redir;' \
  | sort -u \
  | grep -v "https://" \
  | xargs -I {} curl https://wwww.alpha.alta3.com{} -s -o /dev/null -w "%{http_code} %{url} %{redirect_url}\n" \
  > test/relative.txt