Skip to content

Instantly share code, notes, and snippets.

@chessai
Created June 7, 2018 20:55
Show Gist options
  • Save chessai/8868d8b41630d781c4ab4bec6199aff0 to your computer and use it in GitHub Desktop.
Save chessai/8868d8b41630d781c4ab4bec6199aff0 to your computer and use it in GitHub Desktop.
#!/bin/bash
set -e
declare -a semigroupoids_reverse_deps =
(
"semigroupoids"
# "active"
"adjunctions"
"algebra"
# "apart"
"approximate"
# "bet"
# "boombox"
# "cabal-helper"
"category-extras"
# "checkers"
# "commodities"
"compensated"
"compressed"
# "conceit"
# "config-schema"
# "data-lens"
# "dense"
# "difference-monoid"
# "digit"
# "discrete-space-map"
# "dlist-nonempty"
"either"
"eq"
# "exitcode"
# "foldl-transduce"
"folds"
# "forest"
"free"
# "glazier"
# "glazier-react"
# "glirc"
"groupoids"
# "hedgehog-checkers"
"hyperloglog"
# "insert-ordered-containers"
# "invertible"
# "javaclass"
"kan-extensions"
"keys"
# "lattices"
"lens"
"lens-action"
"linear"
"log-domain"
"machines"
# "meep"
"monad-products"
# "mono-traversable-instances"
# "monoid-extras"
# "ms"
# "notzero"
# "numhask-range"
# "optimization"
# "papa-implement"
# "papa-include"
# "papa-prelude-semigroupoids"
# "papa-semigroupoids-export"
# "papa-semigroupoids-implement"
# "pipes-key-value-csv"
# "plots"
"pointed"
# "prologue"
# "q4c12-twofinger"
# "quickcheck-classes"
# "rebase"
"reducers"
# "repl-toolkit"
"representable-tries"
# "resin"
# "rose-trees"
# "route-planning"
"search"
# "semi-iso"
"semigroupoid-extras"
# "separated"
# "servant-client"
# "sets"
"streams"
# "sv"
# "syntax-printer"
# "sys-process"
"tagged-transformer"
# "tdigest-Chart"
# "these"
# "tickle"
# "transformers-abort"
# "validation"
# "variation"
# "vec"
"vector-instances"
# "wires"
# "witness"
"wl-pprint-extras"
"zippers"
)
## now loop through the above array
for g in "${semigroupoids_reverse_deps[@]}"
do
git clone "[email protected]:chessai/$g"
cd "$g"
git checkout master
git checkout -b "semigroupoids-breaking-bump"
# run sed script here
#
# script should:
# 1. update bounds of semigroupoids in g.cabal to be at a minimum 6
# 2. Change the following:
# Bind -> Semimonad
# Apply -> Semiapplicative
# Foldable1 -> Semifoldable
# Traversable1 -> Semitraversable
# Bifoldable1 -> Semibifoldable
# Bitraversable1 -> Semibitraversable
# TYPECLASS NAMES
find ./ -type f -exec sed -i -e 's/Bind/Semimonad/g' {} \;
find ./ -type f -exec sed -i -e 's/Apply/Semiapplicative/g' {} \;
find ./ -type f -exec sed -i -e 's/Foldable1/Semifoldable/g' {} \;
find ./ -type f -exec sed -i -e 's/Traversable1/Semitraversable/g' {} \;
find ./ -type f -exec sed -i -e 's/Bifoldable1/Semibifoldable/g' {} \;
find ./ -type f -exec sed -i -e 's/Bitraversable1/Semibitraversable/g' {} \;
find ./ -type f -exec sed -i -e 's/BindTrans/SemimonadTrans/g' {} \;
# TYPECLASS METHODS
find ./ -type f -exec sed -i -e 's/fold1/semifold/g' {} \;
find ./ -type f -exec sed -i -e 's/foldMap1/semifoldMap/g' {} \;
find ./ -type f -exec sed -i -e 's/traverse1/semitraverse/g' {} \;
find ./ -type f -exec sed -i -e 's/sequence1/semisequence/g' {} \;
find ./ -type f -exec sed -i -e 's/bifold1/semibifold/g' {} \;
find ./ -type f -exec sed -i -e 's/bifoldMap1/semibifoldMap/g' {} \;
find ./ -type f -exec sed -i -e 's/bitraverse1/semibitraverse/g' {} \;
find ./ -type f -exec sed -i -e 's/bisequence1/semibisequence/g' {} \;
find ./ -type f -exec sed -i -e 's/bisequence1/semibisequence/g' {} \;
find ./ -type f -exec sed -i -e 's/intercalate1/semiintercalate/g' {} \;
find ./ -type f -exec sed -i -e 's/intercalateMap1/semiintercalateMap/g' {} \;
find ./ -type f -exec sed -i -e 's/traverse1_/semitraverse_/g' {} \;
find ./ -type f -exec sed -i -e 's/for1_/semifor_/g' {} \;
find ./ -type f -exec sed -i -e 's/sequenceA1/sequenceA_/g' {} \;
find ./ -type f -exec sed -i -e 's/foldMapDefault1/semifoldMapDefault/g' {} \;
find ./ -type f -exec sed -i -e 's/asum1/semiasum/g' {} \;
find ./ -type f -exec sed -i -e 's/foldrM1/semifoldrM/g' {} \;
find ./ -type f -exec sed -i -e 's/foldlM1/semifoldlM/g' {} \;
cd ..
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment