Skip to content

Commit

Permalink
Reorganising generator and cabal configuration(s)
Browse files Browse the repository at this point in the history
  • Loading branch information
brendanhay committed Dec 7, 2020
1 parent aecec6f commit 6136c07
Show file tree
Hide file tree
Showing 449 changed files with 297 additions and 442 deletions.
2 changes: 0 additions & 2 deletions amazonka-alexa-business/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-apigateway/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-application-autoscaling/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-appstream/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-appsync/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-athena/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-autoscaling-plans/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-autoscaling/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-batch/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-budgets/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-certificatemanager-pca/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-certificatemanager/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cloud9/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-clouddirectory/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cloudformation/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cloudfront/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cloudhsm/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cloudhsmv2/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cloudsearch-domains/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cloudsearch/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cloudtrail/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cloudwatch-events/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cloudwatch-logs/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cloudwatch/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-codebuild/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-codecommit/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-codedeploy/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-codepipeline/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-codestar/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cognito-identity/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cognito-idp/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cognito-sync/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-comprehend/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-config/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-connect/Setup.hs

This file was deleted.

3 changes: 0 additions & 3 deletions amazonka-core/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cost-explorer/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-cur/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-datapipeline/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-devicefarm/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-directconnect/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-discovery/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-dms/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-ds/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-dynamodb-dax/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-dynamodb-streams/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-dynamodb/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-ec2/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-ecr/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-ecs/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-efs/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-elasticache/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-elasticbeanstalk/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-elasticsearch/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-elastictranscoder/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-elb/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-elbv2/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-emr/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-fms/Setup.hs

This file was deleted.

2 changes: 0 additions & 2 deletions amazonka-gamelift/Setup.hs

This file was deleted.

3 changes: 0 additions & 3 deletions amazonka-gen/.gitignore

This file was deleted.

43 changes: 0 additions & 43 deletions amazonka-gen/default.nix

This file was deleted.

79 changes: 72 additions & 7 deletions amazonka-gen/src/Gen/AST.hs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE MultiWayIf #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TupleSections #-}

-- Module : Gen.AST
Expand All @@ -21,8 +22,14 @@ import Control.Error
import Control.Lens
import qualified Control.Monad.Except as Except
import Control.Monad.State
import qualified Data.Foldable as Foldable
import Data.Graph (Graph, Vertex)
import qualified Data.Graph as Graph
import qualified Data.HashMap.Strict as Map
import qualified Data.HashSet as Set
import qualified Data.Maybe as Maybe
import qualified Data.Tree as Tree
import Debug.Trace
import Gen.AST.Cofree
import Gen.AST.Data
import Gen.AST.Override
Expand All @@ -37,15 +44,73 @@ rewrite ::
Config ->
Service Maybe (RefF ()) (ShapeF ()) (Waiter Id) ->
Either String Library
rewrite v cfg s' = do
s <- rewriteService cfg (ignore cfg (deprecate s')) >>= renderShapes cfg
Library v cfg s <$> serviceData (s ^. metadata) (s ^. retry)
rewrite versions cfg svc = do
ignored <-
ignoreUnusedShapes svc

deprecate :: Service f a b c -> Service f a b c
deprecate = operations %~ Map.filter (not . view opDeprecated)
rewritten <-
rewriteService cfg
. ignoreWaitersAndPagers cfg
$ deprecateOperations ignored

ignore :: Config -> Service f a b c -> Service f a b c
ignore c srv =
rendered <-
renderShapes cfg rewritten

Library versions cfg rendered
<$> serviceData (rendered ^. metadata) (rendered ^. retry)

deprecateOperations :: Service f a b c -> Service f a b c
deprecateOperations = operations %~ Map.filter (not . view opDeprecated)

ignoreUnusedShapes ::
Service Maybe (RefF ()) (ShapeF ()) c ->
Either String (Service Maybe (RefF ()) (ShapeF ()) c)
ignoreUnusedShapes svc = do
shapes' :: Map Id (Shape Id) <- elaborate (_shapes svc)

let shapeIds :: Map Id [Id]
shapeIds =
Map.map Foldable.toList shapes'

( graph :: Graph,
nodeFromVertex :: Vertex -> ((), Id, [Id]),
vertexFromId :: Id -> Maybe Vertex
) =
Graph.graphFromEdges
. map (\(k, vs) -> ((), k, vs))
$ Map.toList shapeIds

requestResponseIds :: [Id]
requestResponseIds =
flip concatMap (Map.elems (_operations svc)) $ \op ->
Maybe.maybeToList (_refShape <$> _opInput op :: Maybe Id)
++ Maybe.maybeToList (_refShape <$> _opOutput op :: Maybe Id)

rootVertices :: [Vertex]
rootVertices =
Maybe.mapMaybe vertexFromId requestResponseIds

reachableVertices :: [Vertex]
reachableVertices =
concatMap Tree.flatten (Graph.dfs graph rootVertices)

reachableSet :: Set Id
reachableSet =
Set.fromList (map (view _2 . nodeFromVertex) reachableVertices)

pure
svc
{ _shapes =
Map.filterWithKey
(\k _v -> Set.member k reachableSet)
-- if Set.member k reachableSet
-- then True
-- else trace ("Ignoring" ++ show k) False)
(_shapes svc)
}

ignoreWaitersAndPagers :: Config -> Service f a b c -> Service f a b c
ignoreWaitersAndPagers c srv =
srv
& waiters %~ Map.filterWithKey (const . validWaiter)
& operations %~ Map.mapWithKey (\k v -> if validPager k then v else (opPager .~ Nothing) v)
Expand Down
11 changes: 5 additions & 6 deletions amazonka-gen/src/Gen/AST/Data.hs
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,7 @@ operationData cfg m o = do

yis' <- renderInsts p yn (responseInsts ys)
xis' <-
maybe id (HashMap.insert "AWSPager") mpage
. HashMap.insert "AWSRequest" cls
maybe id (HashMap.insert "AWSPager") mpage . HashMap.insert "AWSRequest" cls
<$> renderInsts p xn xis

pure
Expand Down Expand Up @@ -355,7 +354,7 @@ notation m nid = go nid
NonEmptyText e -> NonEmptyText <$> go s e
Choice x y -> Choice <$> go s x <*> go s y
Access ks ->
fmap Access . flip evalStateT s . Monad.forM ks $ \x -> do
fmap Access . flip evalStateT s . Monad.forM ks $ \x -> do
k <- get >>= lift . (`key` x)
put (skip (shape k))
pure k
Expand All @@ -370,10 +369,10 @@ notation m nid = go nid
field' n = \case
a :< Struct st ->
let fields = mkFields m a st
in note (missingErr n (identifier a) fields) $
List.find ((n ==) . _fieldId) fields
in note (missingErr n (identifier a) fields) $
List.find ((n ==) . _fieldId) fields
_ -> Except.throwError (descendErr n)

shape :: Key Field -> Shape Solved
shape =
view (fieldRef . refAnn) . \case
Expand Down
2 changes: 1 addition & 1 deletion amazonka-gen/src/Gen/AST/Prefix.hs
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ assignPrefix = annotate Prefixed memo go
++ ", fields: "
++ show (Set.toList ks)
++ show (map f hs)
--
--
unique r seen n (h : hs) ks = do
m <- uses seen (Map.lookup h)
-- Find if this particular naming heuristic is used already, and if
Expand Down
1 change: 1 addition & 0 deletions amazonka-gen/src/Gen/AST/Subst.hs
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ substitute svc@Service {..} = do
-- No Ref exists, safely insert an empty shape and return a related Ref.
save n (Related n (mkRelation Nothing d) :< emptyStruct)
return (emptyRef n)
--
subst d n (Just r) = do
let k = r ^. refShape
x :< s <- lift (safe k _shapes)
Expand Down
Loading

0 comments on commit 6136c07

Please sign in to comment.