diff --git a/Makefile b/Makefile index 73f5acfc..fe55a241 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ endif $(target_dir): mkdir $@ -$(exe): $(shell find . unison -type f -name '*.hs') package.yaml stack.yaml +$(exe): $(shell find . unison -type f -name '*.hs') $(shell find . unison -type f -name '*.yaml') @echo $(exe) @echo $@ stack build $(STACK_FLAGS) share-api:share-api diff --git a/share-api/README.md b/share-api/README.md new file mode 100644 index 00000000..da402e1c --- /dev/null +++ b/share-api/README.md @@ -0,0 +1 @@ +See root README diff --git a/app/Main.hs b/share-api/app/Main.hs similarity index 73% rename from app/Main.hs rename to share-api/app/Main.hs index 54fceb4e..2e520072 100644 --- a/app/Main.hs +++ b/share-api/app/Main.hs @@ -1,7 +1,7 @@ module Main where import Share -import Env (withEnv) +import Share.Env (withEnv) main :: IO () main = do diff --git a/package.yaml b/share-api/package.yaml similarity index 100% rename from package.yaml rename to share-api/package.yaml diff --git a/share-api.cabal b/share-api/share-api.cabal similarity index 99% rename from share-api.cabal rename to share-api/share-api.cabal index d9698821..07c04783 100644 --- a/share-api.cabal +++ b/share-api/share-api.cabal @@ -12,8 +12,6 @@ bug-reports: https://github.com/unisoncomputing/share-api/issues author: Unison Computing maintainer: unison.cloud copyright: 2024 Unison Computing -license: MIT -license-file: LICENSE build-type: Simple extra-source-files: README.md @@ -51,6 +49,7 @@ library Share.Codebase.Types Share.Contribution Share.Env + Share.Env.Types Share.Github Share.IDs Share.Metrics @@ -368,7 +367,6 @@ library executable share-api main-is: Main.hs other-modules: - Env Paths_share_api hs-source-dirs: app diff --git a/src/Share.hs b/share-api/src/Share.hs similarity index 99% rename from src/Share.hs rename to share-api/src/Share.hs index b1e53271..4aa688a9 100644 --- a/src/Share.hs +++ b/share-api/src/Share.hs @@ -37,7 +37,7 @@ import Servant import Share.App import Share.BackgroundJobs qualified as BackgroundJobs import Share.BackgroundJobs.Monad (runBackground) -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.IDs (RequestId, UserId) import Share.IDs qualified as IDs import Share.JWT qualified as JWT diff --git a/src/Share/App.hs b/share-api/src/Share/App.hs similarity index 96% rename from src/Share/App.hs rename to share-api/src/Share/App.hs index 92b6376d..4322da66 100644 --- a/src/Share/App.hs +++ b/share-api/src/Share/App.hs @@ -15,8 +15,8 @@ import Data.Map qualified as Map import Data.Set qualified as Set import Database.Redis qualified as R import OpenTelemetry.Trace.Monad (MonadTracer (..)) -import Share.Env (Env (..)) -import Share.Env qualified as Env +import Share.Env.Types (Env (..)) +import Share.Env.Types qualified as Env import Share.JWT.Types (Audience (..), Issuer (..)) import Share.Prelude import Share.Utils.Logging qualified as Logging diff --git a/src/Share/Backend.hs b/share-api/src/Share/Backend.hs similarity index 100% rename from src/Share/Backend.hs rename to share-api/src/Share/Backend.hs diff --git a/src/Share/BackgroundJobs.hs b/share-api/src/Share/BackgroundJobs.hs similarity index 100% rename from src/Share/BackgroundJobs.hs rename to share-api/src/Share/BackgroundJobs.hs diff --git a/src/Share/BackgroundJobs/Diffs/CausalDiffs.hs b/share-api/src/Share/BackgroundJobs/Diffs/CausalDiffs.hs similarity index 99% rename from src/Share/BackgroundJobs/Diffs/CausalDiffs.hs rename to share-api/src/Share/BackgroundJobs/Diffs/CausalDiffs.hs index 736ec47e..25439b2d 100644 --- a/src/Share/BackgroundJobs/Diffs/CausalDiffs.hs +++ b/share-api/src/Share/BackgroundJobs/Diffs/CausalDiffs.hs @@ -10,7 +10,7 @@ import Share.BackgroundJobs.Monad (Background) import Share.BackgroundJobs.Workers (newWorker) import Share.Codebase qualified as Codebase import Share.Codebase.CodebaseRuntime qualified as CR -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.IDs qualified as IDs import Share.Metrics qualified as Metrics import Share.Postgres qualified as PG diff --git a/src/Share/BackgroundJobs/Diffs/Queries.hs b/share-api/src/Share/BackgroundJobs/Diffs/Queries.hs similarity index 100% rename from src/Share/BackgroundJobs/Diffs/Queries.hs rename to share-api/src/Share/BackgroundJobs/Diffs/Queries.hs diff --git a/src/Share/BackgroundJobs/Diffs/Types.hs b/share-api/src/Share/BackgroundJobs/Diffs/Types.hs similarity index 100% rename from src/Share/BackgroundJobs/Diffs/Types.hs rename to share-api/src/Share/BackgroundJobs/Diffs/Types.hs diff --git a/src/Share/BackgroundJobs/Errors.hs b/share-api/src/Share/BackgroundJobs/Errors.hs similarity index 98% rename from src/Share/BackgroundJobs/Errors.hs rename to share-api/src/Share/BackgroundJobs/Errors.hs index a134e0b7..7724cfec 100644 --- a/src/Share/BackgroundJobs/Errors.hs +++ b/share-api/src/Share/BackgroundJobs/Errors.hs @@ -12,7 +12,7 @@ import Control.Monad.Except import Data.HashMap.Lazy qualified as HM import Data.Typeable qualified as Typeable import Share.BackgroundJobs.Monad -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.Monitoring qualified as Monitoring import Share.Prelude import Share.Utils.Logging (Loggable) diff --git a/src/Share/BackgroundJobs/Monad.hs b/share-api/src/Share/BackgroundJobs/Monad.hs similarity index 97% rename from src/Share/BackgroundJobs/Monad.hs rename to share-api/src/Share/BackgroundJobs/Monad.hs index 61072723..3f510cb9 100644 --- a/src/Share/BackgroundJobs/Monad.hs +++ b/share-api/src/Share/BackgroundJobs/Monad.hs @@ -10,7 +10,7 @@ module Share.BackgroundJobs.Monad where import Share.App -import Share.Env +import Share.Env.Types import Share.Prelude import Share.Utils.Tags (HasTags (..)) diff --git a/src/Share/BackgroundJobs/Search/DefinitionSync.hs b/share-api/src/Share/BackgroundJobs/Search/DefinitionSync.hs similarity index 100% rename from src/Share/BackgroundJobs/Search/DefinitionSync.hs rename to share-api/src/Share/BackgroundJobs/Search/DefinitionSync.hs diff --git a/src/Share/BackgroundJobs/Search/DefinitionSync/Types.hs b/share-api/src/Share/BackgroundJobs/Search/DefinitionSync/Types.hs similarity index 100% rename from src/Share/BackgroundJobs/Search/DefinitionSync/Types.hs rename to share-api/src/Share/BackgroundJobs/Search/DefinitionSync/Types.hs diff --git a/src/Share/BackgroundJobs/Webhooks/Queries.hs b/share-api/src/Share/BackgroundJobs/Webhooks/Queries.hs similarity index 100% rename from src/Share/BackgroundJobs/Webhooks/Queries.hs rename to share-api/src/Share/BackgroundJobs/Webhooks/Queries.hs diff --git a/src/Share/BackgroundJobs/Webhooks/Types.hs b/share-api/src/Share/BackgroundJobs/Webhooks/Types.hs similarity index 100% rename from src/Share/BackgroundJobs/Webhooks/Types.hs rename to share-api/src/Share/BackgroundJobs/Webhooks/Types.hs diff --git a/src/Share/BackgroundJobs/Webhooks/Worker.hs b/share-api/src/Share/BackgroundJobs/Webhooks/Worker.hs similarity index 99% rename from src/Share/BackgroundJobs/Webhooks/Worker.hs rename to share-api/src/Share/BackgroundJobs/Webhooks/Worker.hs index 409d6aee..bd5afde3 100644 --- a/src/Share/BackgroundJobs/Webhooks/Worker.hs +++ b/share-api/src/Share/BackgroundJobs/Webhooks/Worker.hs @@ -26,7 +26,7 @@ import Share.BackgroundJobs.Workers (newWorker) import Share.ChatApps (Author (..)) import Share.ChatApps qualified as ChatApps import Share.Contribution (displayContributionStatus) -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.IDs import Share.IDs qualified as IDs import Share.JWT (JWTParam (..)) diff --git a/src/Share/BackgroundJobs/Workers.hs b/share-api/src/Share/BackgroundJobs/Workers.hs similarity index 100% rename from src/Share/BackgroundJobs/Workers.hs rename to share-api/src/Share/BackgroundJobs/Workers.hs diff --git a/src/Share/Branch.hs b/share-api/src/Share/Branch.hs similarity index 100% rename from src/Share/Branch.hs rename to share-api/src/Share/Branch.hs diff --git a/src/Share/ChatApps.hs b/share-api/src/Share/ChatApps.hs similarity index 99% rename from src/Share/ChatApps.hs rename to share-api/src/Share/ChatApps.hs index 0c863c4c..e76f7425 100644 --- a/src/Share/ChatApps.hs +++ b/share-api/src/Share/ChatApps.hs @@ -25,7 +25,7 @@ import Network.HTTP.Types qualified as HTTP import Network.URI (URI) import Network.URI qualified as URI import Share.App (AppM) -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.IDs import Share.Postgres qualified as PG import Share.Postgres.Users.Queries qualified as UsersQ diff --git a/src/Share/Codebase.hs b/share-api/src/Share/Codebase.hs similarity index 100% rename from src/Share/Codebase.hs rename to share-api/src/Share/Codebase.hs diff --git a/src/Share/Codebase/CodeCache.hs b/share-api/src/Share/Codebase/CodeCache.hs similarity index 100% rename from src/Share/Codebase/CodeCache.hs rename to share-api/src/Share/Codebase/CodeCache.hs diff --git a/src/Share/Codebase/CodebaseRuntime.hs b/share-api/src/Share/Codebase/CodebaseRuntime.hs similarity index 100% rename from src/Share/Codebase/CodebaseRuntime.hs rename to share-api/src/Share/Codebase/CodebaseRuntime.hs diff --git a/src/Share/Codebase/Types.hs b/share-api/src/Share/Codebase/Types.hs similarity index 100% rename from src/Share/Codebase/Types.hs rename to share-api/src/Share/Codebase/Types.hs diff --git a/src/Share/Contribution.hs b/share-api/src/Share/Contribution.hs similarity index 100% rename from src/Share/Contribution.hs rename to share-api/src/Share/Contribution.hs diff --git a/app/Env.hs b/share-api/src/Share/Env.hs similarity index 82% rename from app/Env.hs rename to share-api/src/Share/Env.hs index ec3909d3..51350f59 100644 --- a/app/Env.hs +++ b/share-api/src/Share/Env.hs @@ -1,33 +1,36 @@ {-# LANGUAGE RecordWildCards #-} -module Env +module Share.Env ( withEnv, ) where -import qualified Share.Telemetry.Setup as Telemetry import Data.ByteString.Char8 qualified as BS import Data.Char import Data.Char qualified as Char import Data.Either.Combinators -import Data.Map qualified as Map import Data.Functor import Data.HashMap.Strict qualified as HM +import Data.Map qualified as Map import Data.Set qualified as Set import Data.Text qualified as Text import Data.Text.Encoding qualified as Text +import Data.Time.Clock qualified as Time import Database.Redis qualified as Redis -import Share.Env +import Hasql.Pool qualified as Pool +import Hasql.Pool.Config qualified as Pool +import Network.HTTP.Client qualified as HTTPClient +import Network.HTTP.Client.TLS qualified as TLS +import Network.URI (parseURI) +import Servant.Client qualified as ServantClient +import Share.Env.Types import Share.JWT qualified as JWT import Share.Prelude +import Share.Telemetry.Setup qualified as Telemetry import Share.Utils.Deployment qualified as Deployment import Share.Utils.Logging qualified as Logging import Share.Utils.Servant.Cookies qualified as Cookies import Share.Web.Authentication (cookieSessionTTL) -import Hasql.Pool qualified as Pool -import Hasql.Pool.Config qualified as Pool -import Network.URI (parseURI) -import Servant.Client qualified as ServantClient import System.Environment (lookupEnv) import System.Exit import System.Log.FastLogger qualified as FL @@ -35,9 +38,6 @@ import System.Log.Raven qualified as Sentry import System.Log.Raven.Transport.HttpConduit qualified as Sentry import System.Log.Raven.Types qualified as Sentry import Unison.Runtime.Interface as RT -import Data.Time.Clock qualified as Time -import Network.HTTP.Client.TLS qualified as TLS -import Network.HTTP.Client qualified as HTTPClient import Vault qualified withEnv :: (Env () -> IO a) -> IO a @@ -100,8 +100,10 @@ withEnv action = do let acceptedIssuers = Set.fromList [shareIssuer, cloudIssuer] let legacyKey = JWT.KeyDescription {JWT.key = hs256Key, JWT.alg = JWT.HS256} let signingKey = JWT.KeyDescription {JWT.key = edDSAKey, JWT.alg = JWT.Ed25519} - let externalJWKs = Map.fromList [ (cloudIssuer, Left cloudAPIJWKEndpoint) - ] + let externalJWKs = + Map.fromList + [ (cloudIssuer, Left cloudAPIJWKEndpoint) + ] hashJWTJWK <- case JWT.keyDescToJWK legacyKey of Left err -> throwIO err Right jwk -> pure jwk @@ -109,9 +111,10 @@ withEnv action = do -- version of the key is used for validation, which is needed for HashJWTs which are signed -- with a 'kid'. let validationKeys = Set.fromList [legacyKey] - jwtSettings <- JWT.defaultJWTSettings shareIssuer signingKey (Just legacyKey) validationKeys acceptedAudiences acceptedIssuers externalJWKs >>= \case - Left cryptoError -> throwIO cryptoError - Right settings -> pure settings + jwtSettings <- + JWT.defaultJWTSettings shareIssuer signingKey (Just legacyKey) validationKeys acceptedAudiences acceptedIssuers externalJWKs >>= \case + Left cryptoError -> throwIO cryptoError + Right settings -> pure settings let cookieSettings = Cookies.defaultCookieSettings Deployment.onLocal (Just (realToFrac cookieSessionTTL)) let sessionCookieKey = tShow Deployment.deployment <> "-share-session" redisConnection <- Redis.checkedConnect redisConfig @@ -133,21 +136,19 @@ withEnv action = do shareVaultToken <- fromEnv "VAULT_TOKEN" ((fmap . fmap) Vault.VaultToken . nonEmptyTextParser "VAULT_TOKEN") let vaultClientEnv = ServantClient.mkClientEnv unproxiedHttpClient vaultHost - - proxiedHttpClient <- do - if Deployment.onLocal - then TLS.newTlsManager - else do - httpProxyHost <- fromEnv "SHARE_PROXY_HOST" ((fmap . fmap) Text.encodeUtf8 . nonEmptyTextParser "SHARE_PROXY_HOST") - httpProxyPort <- fromEnv "SHARE_PROXY_PORT" (pure . maybeToEither "Invalid SHARE_PROXY_PORT" . readMaybe) + if Deployment.onLocal + then TLS.newTlsManager + else do + httpProxyHost <- fromEnv "SHARE_PROXY_HOST" ((fmap . fmap) Text.encodeUtf8 . nonEmptyTextParser "SHARE_PROXY_HOST") + httpProxyPort <- fromEnv "SHARE_PROXY_PORT" (pure . maybeToEither "Invalid SHARE_PROXY_PORT" . readMaybe) - -- http proxy setup - let proxyOverride = HTTPClient.useProxy (HTTPClient.Proxy{HTTPClient.proxyHost = httpProxyHost, HTTPClient.proxyPort = httpProxyPort}) - let proxiedManagerSettings = - TLS.tlsManagerSettings + -- http proxy setup + let proxyOverride = HTTPClient.useProxy (HTTPClient.Proxy {HTTPClient.proxyHost = httpProxyHost, HTTPClient.proxyPort = httpProxyPort}) + let proxiedManagerSettings = + TLS.tlsManagerSettings & HTTPClient.managerSetProxy proxyOverride - TLS.newTlsManagerWith proxiedManagerSettings + TLS.newTlsManagerWith proxiedManagerSettings -- Logging setup let ctx = () @@ -157,17 +158,17 @@ withEnv action = do Telemetry.withTracer commitHash \tracer -> do FL.withFastLogger (FL.LogStderr FL.defaultBufSize) $ \logger -> do action $ Env {logger = (logger . (\msg -> zeroWidthSpace <> msg <> "\n")), ..} - where - readPort p = pure $ maybeToRight "SHARE_PORT was not a number" (readMaybe p) - nonEmptyTextParser :: Text -> String -> IO (Either String Text) - nonEmptyTextParser varName = \case - "" -> pure . Left . Text.unpack $ "Expected a value for env var " <> varName <> ", but got an empty string" - str -> pure . Right $ Text.pack str + where + readPort p = pure $ maybeToRight "SHARE_PORT was not a number" (readMaybe p) + nonEmptyTextParser :: Text -> String -> IO (Either String Text) + nonEmptyTextParser varName = \case + "" -> pure . Left . Text.unpack $ "Expected a value for env var " <> varName <> ", but got an empty string" + str -> pure . Right $ Text.pack str - parseBaseUrl :: String -> IO (Either String ServantClient.BaseUrl) - parseBaseUrl str = do - u <- ServantClient.parseBaseUrl str - pure $ Right u + parseBaseUrl :: String -> IO (Either String ServantClient.BaseUrl) + parseBaseUrl str = do + u <- ServantClient.parseBaseUrl str + pure $ Right u -- | Parse an environment variable, but only if it exists. maybeEnv :: String -> (String -> IO (Either String a)) -> IO (Maybe a) @@ -175,9 +176,10 @@ maybeEnv var parser = do val <- lookupEnv var case val of Nothing -> pure Nothing - Just val' -> parser val' >>= \case - Right a -> pure (Just a) - Left err -> putStrLn ("Error with " <> var <> ": " <> err) >> exitWith (ExitFailure 1) + Just val' -> + parser val' >>= \case + Right a -> pure (Just a) + Left err -> putStrLn ("Error with " <> var <> ": " <> err) >> exitWith (ExitFailure 1) fromEnv :: String -> (String -> IO (Either String a)) -> IO a fromEnv var from = do diff --git a/src/Share/Env.hs b/share-api/src/Share/Env/Types.hs similarity index 99% rename from src/Share/Env.hs rename to share-api/src/Share/Env/Types.hs index 02168897..a33b2ad2 100644 --- a/src/Share/Env.hs +++ b/share-api/src/Share/Env/Types.hs @@ -1,4 +1,4 @@ -module Share.Env +module Share.Env.Types ( Env (..), serviceName, ) diff --git a/src/Share/Github.hs b/share-api/src/Share/Github.hs similarity index 99% rename from src/Share/Github.hs rename to share-api/src/Share/Github.hs index 51938910..b996f7d2 100644 --- a/src/Share/Github.hs +++ b/share-api/src/Share/Github.hs @@ -12,7 +12,7 @@ import Network.HTTP.Types (Status (..)) import Network.URI (URIAuth (URIAuth)) import Servant import Servant.Client -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.OAuth.Types (OAuth2State) import Share.OAuth.Types qualified as OAuth2 import Share.Prelude diff --git a/src/Share/IDs.hs b/share-api/src/Share/IDs.hs similarity index 100% rename from src/Share/IDs.hs rename to share-api/src/Share/IDs.hs diff --git a/src/Share/Metrics.hs b/share-api/src/Share/Metrics.hs similarity index 99% rename from src/Share/Metrics.hs rename to share-api/src/Share/Metrics.hs index 42329666..1ad91637 100644 --- a/src/Share/Metrics.hs +++ b/share-api/src/Share/Metrics.hs @@ -26,7 +26,7 @@ import Network.Wai qualified as Wai import Network.Wai.Middleware.Prometheus qualified as Prom import Prometheus qualified as Prom import Prometheus.Metric.GHC qualified as Prom -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.Postgres qualified as PG import Share.Postgres.Metrics.Queries qualified as Q import Share.Prelude diff --git a/src/Share/Monitoring.hs b/share-api/src/Share/Monitoring.hs similarity index 96% rename from src/Share/Monitoring.hs rename to share-api/src/Share/Monitoring.hs index d8f18df6..1db3cf32 100644 --- a/src/Share/Monitoring.hs +++ b/share-api/src/Share/Monitoring.hs @@ -5,14 +5,14 @@ import Data.Aeson qualified as Aeson import Data.HashMap.Strict qualified as HM import Data.Map qualified as Map import Data.Text qualified as Text -import Share.Env -import Share.Env qualified as Env +import GHC.Stack qualified as Stack +import Network.URI (URI) +import Share.Env.Types +import Share.Env.Types qualified as Env import Share.Prelude import Share.Utils.Deployment qualified as Deployment import Share.Utils.Logging import Share.Utils.Logging qualified as Logging -import GHC.Stack qualified as Stack -import Network.URI (URI) import System.Log.Raven qualified as Sentry import System.Log.Raven.Types qualified as Sentry diff --git a/src/Share/Names/Postgres.hs b/share-api/src/Share/Names/Postgres.hs similarity index 100% rename from src/Share/Names/Postgres.hs rename to share-api/src/Share/Names/Postgres.hs diff --git a/src/Share/NamespaceDiffs.hs b/share-api/src/Share/NamespaceDiffs.hs similarity index 100% rename from src/Share/NamespaceDiffs.hs rename to share-api/src/Share/NamespaceDiffs.hs diff --git a/src/Share/NamespaceDiffs/Types.hs b/share-api/src/Share/NamespaceDiffs/Types.hs similarity index 100% rename from src/Share/NamespaceDiffs/Types.hs rename to share-api/src/Share/NamespaceDiffs/Types.hs diff --git a/src/Share/Notifications/API.hs b/share-api/src/Share/Notifications/API.hs similarity index 100% rename from src/Share/Notifications/API.hs rename to share-api/src/Share/Notifications/API.hs diff --git a/src/Share/Notifications/Impl.hs b/share-api/src/Share/Notifications/Impl.hs similarity index 100% rename from src/Share/Notifications/Impl.hs rename to share-api/src/Share/Notifications/Impl.hs diff --git a/src/Share/Notifications/Ops.hs b/share-api/src/Share/Notifications/Ops.hs similarity index 100% rename from src/Share/Notifications/Ops.hs rename to share-api/src/Share/Notifications/Ops.hs diff --git a/src/Share/Notifications/Queries.hs b/share-api/src/Share/Notifications/Queries.hs similarity index 100% rename from src/Share/Notifications/Queries.hs rename to share-api/src/Share/Notifications/Queries.hs diff --git a/src/Share/Notifications/Types.hs b/share-api/src/Share/Notifications/Types.hs similarity index 100% rename from src/Share/Notifications/Types.hs rename to share-api/src/Share/Notifications/Types.hs diff --git a/src/Share/Notifications/Webhooks/Secrets.hs b/share-api/src/Share/Notifications/Webhooks/Secrets.hs similarity index 99% rename from src/Share/Notifications/Webhooks/Secrets.hs rename to share-api/src/Share/Notifications/Webhooks/Secrets.hs index d00f03ba..729bc51e 100644 --- a/src/Share/Notifications/Webhooks/Secrets.hs +++ b/share-api/src/Share/Notifications/Webhooks/Secrets.hs @@ -18,7 +18,7 @@ import Servant.Client (ClientError, ClientM) import Servant.Client qualified as ServantClient import Servant.Server (err500) import Share.App (AppM) -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.IDs import Share.IDs qualified as IDs import Share.Prelude diff --git a/src/Share/Postgres.hs b/share-api/src/Share/Postgres.hs similarity index 99% rename from src/Share/Postgres.hs rename to share-api/src/Share/Postgres.hs index 88ebd2b4..b215028a 100644 --- a/src/Share/Postgres.hs +++ b/share-api/src/Share/Postgres.hs @@ -113,7 +113,7 @@ import OpenTelemetry.Trace qualified as Trace import OpenTelemetry.Trace.Monad (MonadTracer (..)) import Safe (headMay) import Share.Debug qualified as Debug -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.Postgres.Composites import Share.Postgres.Orphans () import Share.Prelude diff --git a/src/Share/Postgres/Admin.hs b/share-api/src/Share/Postgres/Admin.hs similarity index 100% rename from src/Share/Postgres/Admin.hs rename to share-api/src/Share/Postgres/Admin.hs diff --git a/src/Share/Postgres/Authorization/Queries.hs b/share-api/src/Share/Postgres/Authorization/Queries.hs similarity index 100% rename from src/Share/Postgres/Authorization/Queries.hs rename to share-api/src/Share/Postgres/Authorization/Queries.hs diff --git a/src/Share/Postgres/Causal/Conversions.hs b/share-api/src/Share/Postgres/Causal/Conversions.hs similarity index 100% rename from src/Share/Postgres/Causal/Conversions.hs rename to share-api/src/Share/Postgres/Causal/Conversions.hs diff --git a/src/Share/Postgres/Causal/Queries.hs b/share-api/src/Share/Postgres/Causal/Queries.hs similarity index 100% rename from src/Share/Postgres/Causal/Queries.hs rename to share-api/src/Share/Postgres/Causal/Queries.hs diff --git a/src/Share/Postgres/Causal/Types.hs b/share-api/src/Share/Postgres/Causal/Types.hs similarity index 100% rename from src/Share/Postgres/Causal/Types.hs rename to share-api/src/Share/Postgres/Causal/Types.hs diff --git a/src/Share/Postgres/Comments/Ops.hs b/share-api/src/Share/Postgres/Comments/Ops.hs similarity index 100% rename from src/Share/Postgres/Comments/Ops.hs rename to share-api/src/Share/Postgres/Comments/Ops.hs diff --git a/src/Share/Postgres/Comments/Queries.hs b/share-api/src/Share/Postgres/Comments/Queries.hs similarity index 100% rename from src/Share/Postgres/Comments/Queries.hs rename to share-api/src/Share/Postgres/Comments/Queries.hs diff --git a/src/Share/Postgres/Composites.hs b/share-api/src/Share/Postgres/Composites.hs similarity index 100% rename from src/Share/Postgres/Composites.hs rename to share-api/src/Share/Postgres/Composites.hs diff --git a/src/Share/Postgres/Contributions/Ops.hs b/share-api/src/Share/Postgres/Contributions/Ops.hs similarity index 100% rename from src/Share/Postgres/Contributions/Ops.hs rename to share-api/src/Share/Postgres/Contributions/Ops.hs diff --git a/src/Share/Postgres/Contributions/Queries.hs b/share-api/src/Share/Postgres/Contributions/Queries.hs similarity index 100% rename from src/Share/Postgres/Contributions/Queries.hs rename to share-api/src/Share/Postgres/Contributions/Queries.hs diff --git a/src/Share/Postgres/Cursors.hs b/share-api/src/Share/Postgres/Cursors.hs similarity index 100% rename from src/Share/Postgres/Cursors.hs rename to share-api/src/Share/Postgres/Cursors.hs diff --git a/src/Share/Postgres/Definitions/Queries.hs b/share-api/src/Share/Postgres/Definitions/Queries.hs similarity index 100% rename from src/Share/Postgres/Definitions/Queries.hs rename to share-api/src/Share/Postgres/Definitions/Queries.hs diff --git a/src/Share/Postgres/Definitions/Types.hs b/share-api/src/Share/Postgres/Definitions/Types.hs similarity index 100% rename from src/Share/Postgres/Definitions/Types.hs rename to share-api/src/Share/Postgres/Definitions/Types.hs diff --git a/src/Share/Postgres/Hashes/Queries.hs b/share-api/src/Share/Postgres/Hashes/Queries.hs similarity index 100% rename from src/Share/Postgres/Hashes/Queries.hs rename to share-api/src/Share/Postgres/Hashes/Queries.hs diff --git a/src/Share/Postgres/IDs.hs b/share-api/src/Share/Postgres/IDs.hs similarity index 100% rename from src/Share/Postgres/IDs.hs rename to share-api/src/Share/Postgres/IDs.hs diff --git a/src/Share/Postgres/LooseCode/Queries.hs b/share-api/src/Share/Postgres/LooseCode/Queries.hs similarity index 100% rename from src/Share/Postgres/LooseCode/Queries.hs rename to share-api/src/Share/Postgres/LooseCode/Queries.hs diff --git a/src/Share/Postgres/Metrics/Queries.hs b/share-api/src/Share/Postgres/Metrics/Queries.hs similarity index 100% rename from src/Share/Postgres/Metrics/Queries.hs rename to share-api/src/Share/Postgres/Metrics/Queries.hs diff --git a/src/Share/Postgres/NameLookups/Conversions.hs b/share-api/src/Share/Postgres/NameLookups/Conversions.hs similarity index 100% rename from src/Share/Postgres/NameLookups/Conversions.hs rename to share-api/src/Share/Postgres/NameLookups/Conversions.hs diff --git a/src/Share/Postgres/NameLookups/Ops.hs b/share-api/src/Share/Postgres/NameLookups/Ops.hs similarity index 100% rename from src/Share/Postgres/NameLookups/Ops.hs rename to share-api/src/Share/Postgres/NameLookups/Ops.hs diff --git a/src/Share/Postgres/NameLookups/Queries.hs b/share-api/src/Share/Postgres/NameLookups/Queries.hs similarity index 100% rename from src/Share/Postgres/NameLookups/Queries.hs rename to share-api/src/Share/Postgres/NameLookups/Queries.hs diff --git a/src/Share/Postgres/NameLookups/Types.hs b/share-api/src/Share/Postgres/NameLookups/Types.hs similarity index 100% rename from src/Share/Postgres/NameLookups/Types.hs rename to share-api/src/Share/Postgres/NameLookups/Types.hs diff --git a/src/Share/Postgres/NamesPerspective/Ops.hs b/share-api/src/Share/Postgres/NamesPerspective/Ops.hs similarity index 100% rename from src/Share/Postgres/NamesPerspective/Ops.hs rename to share-api/src/Share/Postgres/NamesPerspective/Ops.hs diff --git a/src/Share/Postgres/NamesPerspective/Queries.hs b/share-api/src/Share/Postgres/NamesPerspective/Queries.hs similarity index 100% rename from src/Share/Postgres/NamesPerspective/Queries.hs rename to share-api/src/Share/Postgres/NamesPerspective/Queries.hs diff --git a/src/Share/Postgres/NamesPerspective/Types.hs b/share-api/src/Share/Postgres/NamesPerspective/Types.hs similarity index 100% rename from src/Share/Postgres/NamesPerspective/Types.hs rename to share-api/src/Share/Postgres/NamesPerspective/Types.hs diff --git a/src/Share/Postgres/NamespaceDiffs.hs b/share-api/src/Share/Postgres/NamespaceDiffs.hs similarity index 100% rename from src/Share/Postgres/NamespaceDiffs.hs rename to share-api/src/Share/Postgres/NamespaceDiffs.hs diff --git a/src/Share/Postgres/Notifications.hs b/share-api/src/Share/Postgres/Notifications.hs similarity index 100% rename from src/Share/Postgres/Notifications.hs rename to share-api/src/Share/Postgres/Notifications.hs diff --git a/src/Share/Postgres/Ops.hs b/share-api/src/Share/Postgres/Ops.hs similarity index 100% rename from src/Share/Postgres/Ops.hs rename to share-api/src/Share/Postgres/Ops.hs diff --git a/src/Share/Postgres/Orphans.hs b/share-api/src/Share/Postgres/Orphans.hs similarity index 100% rename from src/Share/Postgres/Orphans.hs rename to share-api/src/Share/Postgres/Orphans.hs diff --git a/src/Share/Postgres/Patches/Queries.hs b/share-api/src/Share/Postgres/Patches/Queries.hs similarity index 100% rename from src/Share/Postgres/Patches/Queries.hs rename to share-api/src/Share/Postgres/Patches/Queries.hs diff --git a/src/Share/Postgres/Patches/Types.hs b/share-api/src/Share/Postgres/Patches/Types.hs similarity index 100% rename from src/Share/Postgres/Patches/Types.hs rename to share-api/src/Share/Postgres/Patches/Types.hs diff --git a/src/Share/Postgres/Projects/Queries.hs b/share-api/src/Share/Postgres/Projects/Queries.hs similarity index 100% rename from src/Share/Postgres/Projects/Queries.hs rename to share-api/src/Share/Postgres/Projects/Queries.hs diff --git a/src/Share/Postgres/Queries.hs b/share-api/src/Share/Postgres/Queries.hs similarity index 100% rename from src/Share/Postgres/Queries.hs rename to share-api/src/Share/Postgres/Queries.hs diff --git a/src/Share/Postgres/Refs/Types.hs b/share-api/src/Share/Postgres/Refs/Types.hs similarity index 100% rename from src/Share/Postgres/Refs/Types.hs rename to share-api/src/Share/Postgres/Refs/Types.hs diff --git a/src/Share/Postgres/Releases/Ops.hs b/share-api/src/Share/Postgres/Releases/Ops.hs similarity index 100% rename from src/Share/Postgres/Releases/Ops.hs rename to share-api/src/Share/Postgres/Releases/Ops.hs diff --git a/src/Share/Postgres/Releases/Queries.hs b/share-api/src/Share/Postgres/Releases/Queries.hs similarity index 100% rename from src/Share/Postgres/Releases/Queries.hs rename to share-api/src/Share/Postgres/Releases/Queries.hs diff --git a/src/Share/Postgres/Search/DefinitionSearch/Queries.hs b/share-api/src/Share/Postgres/Search/DefinitionSearch/Queries.hs similarity index 100% rename from src/Share/Postgres/Search/DefinitionSearch/Queries.hs rename to share-api/src/Share/Postgres/Search/DefinitionSearch/Queries.hs diff --git a/src/Share/Postgres/Serialization.hs b/share-api/src/Share/Postgres/Serialization.hs similarity index 100% rename from src/Share/Postgres/Serialization.hs rename to share-api/src/Share/Postgres/Serialization.hs diff --git a/src/Share/Postgres/Sync/Conversions.hs b/share-api/src/Share/Postgres/Sync/Conversions.hs similarity index 100% rename from src/Share/Postgres/Sync/Conversions.hs rename to share-api/src/Share/Postgres/Sync/Conversions.hs diff --git a/src/Share/Postgres/Sync/Queries.hs b/share-api/src/Share/Postgres/Sync/Queries.hs similarity index 100% rename from src/Share/Postgres/Sync/Queries.hs rename to share-api/src/Share/Postgres/Sync/Queries.hs diff --git a/src/Share/Postgres/Sync/Types.hs b/share-api/src/Share/Postgres/Sync/Types.hs similarity index 100% rename from src/Share/Postgres/Sync/Types.hs rename to share-api/src/Share/Postgres/Sync/Types.hs diff --git a/src/Share/Postgres/Tickets/Ops.hs b/share-api/src/Share/Postgres/Tickets/Ops.hs similarity index 100% rename from src/Share/Postgres/Tickets/Ops.hs rename to share-api/src/Share/Postgres/Tickets/Ops.hs diff --git a/src/Share/Postgres/Tickets/Queries.hs b/share-api/src/Share/Postgres/Tickets/Queries.hs similarity index 100% rename from src/Share/Postgres/Tickets/Queries.hs rename to share-api/src/Share/Postgres/Tickets/Queries.hs diff --git a/src/Share/Postgres/Users/Queries.hs b/share-api/src/Share/Postgres/Users/Queries.hs similarity index 100% rename from src/Share/Postgres/Users/Queries.hs rename to share-api/src/Share/Postgres/Users/Queries.hs diff --git a/src/Share/Prelude.hs b/share-api/src/Share/Prelude.hs similarity index 100% rename from src/Share/Prelude.hs rename to share-api/src/Share/Prelude.hs diff --git a/src/Share/Prelude/Orphans.hs b/share-api/src/Share/Prelude/Orphans.hs similarity index 100% rename from src/Share/Prelude/Orphans.hs rename to share-api/src/Share/Prelude/Orphans.hs diff --git a/src/Share/PrettyPrintEnvDecl/Postgres.hs b/share-api/src/Share/PrettyPrintEnvDecl/Postgres.hs similarity index 100% rename from src/Share/PrettyPrintEnvDecl/Postgres.hs rename to share-api/src/Share/PrettyPrintEnvDecl/Postgres.hs diff --git a/src/Share/Project.hs b/share-api/src/Share/Project.hs similarity index 100% rename from src/Share/Project.hs rename to share-api/src/Share/Project.hs diff --git a/src/Share/Redis.hs b/share-api/src/Share/Redis.hs similarity index 100% rename from src/Share/Redis.hs rename to share-api/src/Share/Redis.hs diff --git a/src/Share/Release.hs b/share-api/src/Share/Release.hs similarity index 100% rename from src/Share/Release.hs rename to share-api/src/Share/Release.hs diff --git a/src/Share/Telemetry.hs b/share-api/src/Share/Telemetry.hs similarity index 100% rename from src/Share/Telemetry.hs rename to share-api/src/Share/Telemetry.hs diff --git a/src/Share/Telemetry/Setup.hs b/share-api/src/Share/Telemetry/Setup.hs similarity index 100% rename from src/Share/Telemetry/Setup.hs rename to share-api/src/Share/Telemetry/Setup.hs diff --git a/src/Share/Ticket.hs b/share-api/src/Share/Ticket.hs similarity index 100% rename from src/Share/Ticket.hs rename to share-api/src/Share/Ticket.hs diff --git a/src/Share/User.hs b/share-api/src/Share/User.hs similarity index 100% rename from src/Share/User.hs rename to share-api/src/Share/User.hs diff --git a/src/Share/UserProfile.hs b/share-api/src/Share/UserProfile.hs similarity index 100% rename from src/Share/UserProfile.hs rename to share-api/src/Share/UserProfile.hs diff --git a/src/Share/Utils/Caching.hs b/share-api/src/Share/Utils/Caching.hs similarity index 100% rename from src/Share/Utils/Caching.hs rename to share-api/src/Share/Utils/Caching.hs diff --git a/src/Share/Utils/Caching/JSON.hs b/share-api/src/Share/Utils/Caching/JSON.hs similarity index 100% rename from src/Share/Utils/Caching/JSON.hs rename to share-api/src/Share/Utils/Caching/JSON.hs diff --git a/src/Share/Utils/Data.hs b/share-api/src/Share/Utils/Data.hs similarity index 100% rename from src/Share/Utils/Data.hs rename to share-api/src/Share/Utils/Data.hs diff --git a/src/Share/Utils/Lens.hs b/share-api/src/Share/Utils/Lens.hs similarity index 100% rename from src/Share/Utils/Lens.hs rename to share-api/src/Share/Utils/Lens.hs diff --git a/src/Share/Utils/Logging.hs b/share-api/src/Share/Utils/Logging.hs similarity index 99% rename from src/Share/Utils/Logging.hs rename to share-api/src/Share/Utils/Logging.hs index 29c758c8..0bcabc2d 100644 --- a/src/Share/Utils/Logging.hs +++ b/share-api/src/Share/Utils/Logging.hs @@ -46,7 +46,7 @@ import Data.Text.Encoding qualified as Text import Data.Text.IO qualified as Text import GHC.Stack (CallStack, callStack, prettyCallStack) import Servant.Client qualified as Servant -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.OAuth.Errors (OAuth2Error) import Share.OAuth.Types (RedirectReceiverErr) import Share.Prelude diff --git a/src/Share/Utils/Logging/Types.hs b/share-api/src/Share/Utils/Logging/Types.hs similarity index 100% rename from src/Share/Utils/Logging/Types.hs rename to share-api/src/Share/Utils/Logging/Types.hs diff --git a/src/Share/Utils/Postgres.hs b/share-api/src/Share/Utils/Postgres.hs similarity index 100% rename from src/Share/Utils/Postgres.hs rename to share-api/src/Share/Utils/Postgres.hs diff --git a/src/Share/Utils/Servant.hs b/share-api/src/Share/Utils/Servant.hs similarity index 100% rename from src/Share/Utils/Servant.hs rename to share-api/src/Share/Utils/Servant.hs diff --git a/src/Share/Utils/Servant/CBOR.hs b/share-api/src/Share/Utils/Servant/CBOR.hs similarity index 100% rename from src/Share/Utils/Servant/CBOR.hs rename to share-api/src/Share/Utils/Servant/CBOR.hs diff --git a/src/Share/Utils/Servant/Client.hs b/share-api/src/Share/Utils/Servant/Client.hs similarity index 100% rename from src/Share/Utils/Servant/Client.hs rename to share-api/src/Share/Utils/Servant/Client.hs diff --git a/src/Share/Utils/Servant/PathInfo.hs b/share-api/src/Share/Utils/Servant/PathInfo.hs similarity index 100% rename from src/Share/Utils/Servant/PathInfo.hs rename to share-api/src/Share/Utils/Servant/PathInfo.hs diff --git a/src/Share/Utils/Servant/RawRequest.hs b/share-api/src/Share/Utils/Servant/RawRequest.hs similarity index 100% rename from src/Share/Utils/Servant/RawRequest.hs rename to share-api/src/Share/Utils/Servant/RawRequest.hs diff --git a/src/Share/Utils/Tags.hs b/share-api/src/Share/Utils/Tags.hs similarity index 100% rename from src/Share/Utils/Tags.hs rename to share-api/src/Share/Utils/Tags.hs diff --git a/src/Share/Utils/Unison.hs b/share-api/src/Share/Utils/Unison.hs similarity index 100% rename from src/Share/Utils/Unison.hs rename to share-api/src/Share/Utils/Unison.hs diff --git a/src/Share/Web/API.hs b/share-api/src/Share/Web/API.hs similarity index 100% rename from src/Share/Web/API.hs rename to share-api/src/Share/Web/API.hs diff --git a/src/Share/Web/Admin/API.hs b/share-api/src/Share/Web/Admin/API.hs similarity index 100% rename from src/Share/Web/Admin/API.hs rename to share-api/src/Share/Web/Admin/API.hs diff --git a/src/Share/Web/Admin/Impl.hs b/share-api/src/Share/Web/Admin/Impl.hs similarity index 100% rename from src/Share/Web/Admin/Impl.hs rename to share-api/src/Share/Web/Admin/Impl.hs diff --git a/src/Share/Web/Admin/Types.hs b/share-api/src/Share/Web/Admin/Types.hs similarity index 100% rename from src/Share/Web/Admin/Types.hs rename to share-api/src/Share/Web/Admin/Types.hs diff --git a/src/Share/Web/App.hs b/share-api/src/Share/Web/App.hs similarity index 99% rename from src/Share/Web/App.hs rename to share-api/src/Share/Web/App.hs index 6b6ecaf1..b100d654 100644 --- a/src/Share/Web/App.hs +++ b/share-api/src/Share/Web/App.hs @@ -20,7 +20,7 @@ import Network.URI import Servant import Servant.Server.Generic (AsServerT) import Share.App -import Share.Env +import Share.Env.Types import Share.IDs (RequestId, UserId) import Share.Prelude import Share.Utils.Tags diff --git a/src/Share/Web/Authentication.hs b/share-api/src/Share/Web/Authentication.hs similarity index 100% rename from src/Share/Web/Authentication.hs rename to share-api/src/Share/Web/Authentication.hs diff --git a/src/Share/Web/Authentication/AccessToken.hs b/share-api/src/Share/Web/Authentication/AccessToken.hs similarity index 100% rename from src/Share/Web/Authentication/AccessToken.hs rename to share-api/src/Share/Web/Authentication/AccessToken.hs diff --git a/src/Share/Web/Authentication/HashJWT.hs b/share-api/src/Share/Web/Authentication/HashJWT.hs similarity index 92% rename from src/Share/Web/Authentication/HashJWT.hs rename to share-api/src/Share/Web/Authentication/HashJWT.hs index 6df7baf8..d18edbd5 100644 --- a/src/Share/Web/Authentication/HashJWT.hs +++ b/share-api/src/Share/Web/Authentication/HashJWT.hs @@ -2,7 +2,7 @@ module Share.Web.Authentication.HashJWT where import Crypto.JWT import Data.Aeson qualified as Aeson -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.JWT qualified as JWT import Share.Prelude import Share.Web.App diff --git a/src/Share/Web/Authentication/JWT.hs b/share-api/src/Share/Web/Authentication/JWT.hs similarity index 97% rename from src/Share/Web/Authentication/JWT.hs rename to share-api/src/Share/Web/Authentication/JWT.hs index 7cdd7571..de8b1ac7 100644 --- a/src/Share/Web/Authentication/JWT.hs +++ b/share-api/src/Share/Web/Authentication/JWT.hs @@ -8,7 +8,7 @@ import Crypto.JWT (SignedJWT) import Data.Either.Combinators qualified as Either import Data.Time (NominalDiffTime, addUTCTime, getCurrentTime) import Share.App -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.IDs (JTI (..), SessionId (..), UserId (..)) import Share.IDs qualified as IDs import Share.JWT diff --git a/src/Share/Web/Authentication/Types.hs b/share-api/src/Share/Web/Authentication/Types.hs similarity index 100% rename from src/Share/Web/Authentication/Types.hs rename to share-api/src/Share/Web/Authentication/Types.hs diff --git a/src/Share/Web/Authorization.hs b/share-api/src/Share/Web/Authorization.hs similarity index 100% rename from src/Share/Web/Authorization.hs rename to share-api/src/Share/Web/Authorization.hs diff --git a/src/Share/Web/Authorization/Types.hs b/share-api/src/Share/Web/Authorization/Types.hs similarity index 100% rename from src/Share/Web/Authorization/Types.hs rename to share-api/src/Share/Web/Authorization/Types.hs diff --git a/src/Share/Web/Errors.hs b/share-api/src/Share/Web/Errors.hs similarity index 99% rename from src/Share/Web/Errors.hs rename to share-api/src/Share/Web/Errors.hs index 1a37584d..55591eda 100644 --- a/src/Share/Web/Errors.hs +++ b/share-api/src/Share/Web/Errors.hs @@ -55,7 +55,7 @@ import GHC.Stack qualified as GHC import GHC.TypeLits qualified as TL import Servant import Servant.Client -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.Monitoring qualified as Monitoring import Share.OAuth.Errors (OAuth2Error (..), OAuth2ErrorCode (..), OAuth2ErrorRedirect (..)) import Share.OAuth.Types (AuthenticationRequest (..), RedirectReceiverErr (..)) @@ -404,7 +404,6 @@ throwSomeServerError = throwError . SomeServerError . withCallstack -- Instances from unison types. - instance ToServerError Sync.EntityValidationError where toServerError = \case Sync.EntityHashMismatch {} -> ("entity-hash-mismatch", err500) @@ -424,5 +423,3 @@ instance ToServerError Sync.UploadEntitiesError where Sync.UploadEntitiesError'NoWritePermission _ -> ("no-write-permission", err403 {errBody = "No Write Permission"}) Sync.UploadEntitiesError'ProjectNotFound _ -> ("project-not-found", err404 {errBody = "Project Not Found"}) Sync.UploadEntitiesError'UserNotFound _ -> ("user-not-found", err404 {errBody = "User Not Found"}) - - diff --git a/src/Share/Web/Impl.hs b/share-api/src/Share/Web/Impl.hs similarity index 98% rename from src/Share/Web/Impl.hs rename to share-api/src/Share/Web/Impl.hs index e8712bb4..13d5cad4 100644 --- a/src/Share/Web/Impl.hs +++ b/share-api/src/Share/Web/Impl.hs @@ -6,7 +6,7 @@ import Crypto.JOSE.JWK qualified as JWK import Data.Set qualified as Set import Servant import Share.App -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.JWT qualified as JWT import Share.JWT.Types (Issuer (..)) import Share.OAuth.Session diff --git a/src/Share/Web/Local/API.hs b/share-api/src/Share/Web/Local/API.hs similarity index 100% rename from src/Share/Web/Local/API.hs rename to share-api/src/Share/Web/Local/API.hs diff --git a/src/Share/Web/Local/Impl.hs b/share-api/src/Share/Web/Local/Impl.hs similarity index 98% rename from src/Share/Web/Local/Impl.hs rename to share-api/src/Share/Web/Local/Impl.hs index 86844f55..a0533a42 100644 --- a/src/Share/Web/Local/Impl.hs +++ b/share-api/src/Share/Web/Local/Impl.hs @@ -9,8 +9,8 @@ import Control.Monad.Reader import Data.Set qualified as Set import Servant import Share.App (shareAud, shareIssuer) -import Share.Env -import Share.Env qualified as Env +import Share.Env.Types +import Share.Env.Types qualified as Env import Share.IDs import Share.JWT (JWTParam (..)) import Share.JWT qualified as JWT diff --git a/src/Share/Web/OAuth/Clients.hs b/share-api/src/Share/Web/OAuth/Clients.hs similarity index 100% rename from src/Share/Web/OAuth/Clients.hs rename to share-api/src/Share/Web/OAuth/Clients.hs diff --git a/src/Share/Web/OAuth/Impl.hs b/share-api/src/Share/Web/OAuth/Impl.hs similarity index 99% rename from src/Share/Web/OAuth/Impl.hs rename to share-api/src/Share/Web/OAuth/Impl.hs index dc44b492..75d3d655 100644 --- a/src/Share/Web/OAuth/Impl.hs +++ b/share-api/src/Share/Web/OAuth/Impl.hs @@ -25,7 +25,7 @@ import Data.Text qualified as Text import Network.URI (parseURI) import Servant import Share.App (shareAud, shareIssuer) -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.Github qualified as Github import Share.IDs (PendingSessionId, UserHandle, fromId) import Share.IDs qualified as IDs diff --git a/src/Share/Web/Share/API.hs b/share-api/src/Share/Web/Share/API.hs similarity index 100% rename from src/Share/Web/Share/API.hs rename to share-api/src/Share/Web/Share/API.hs diff --git a/src/Share/Web/Share/Branches/API.hs b/share-api/src/Share/Web/Share/Branches/API.hs similarity index 100% rename from src/Share/Web/Share/Branches/API.hs rename to share-api/src/Share/Web/Share/Branches/API.hs diff --git a/src/Share/Web/Share/Branches/Impl.hs b/share-api/src/Share/Web/Share/Branches/Impl.hs similarity index 99% rename from src/Share/Web/Share/Branches/Impl.hs rename to share-api/src/Share/Web/Share/Branches/Impl.hs index 4496ac37..fe78ee28 100644 --- a/src/Share/Web/Share/Branches/Impl.hs +++ b/share-api/src/Share/Web/Share/Branches/Impl.hs @@ -15,7 +15,7 @@ import Share.Branch (Branch (..), branchCausals_) import Share.Codebase qualified as Codebase import Share.Codebase.CodeCache qualified as CodeCache import Share.Codebase.CodebaseRuntime qualified as CR -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.IDs (BranchId, BranchShortHand (..), ProjectBranchShortHand (..), ProjectShortHand (..), ProjectSlug (..), UserHandle, UserId) import Share.IDs qualified as IDs import Share.OAuth.Session diff --git a/src/Share/Web/Share/Branches/Types.hs b/share-api/src/Share/Web/Share/Branches/Types.hs similarity index 100% rename from src/Share/Web/Share/Branches/Types.hs rename to share-api/src/Share/Web/Share/Branches/Types.hs diff --git a/src/Share/Web/Share/CodeBrowsing/API.hs b/share-api/src/Share/Web/Share/CodeBrowsing/API.hs similarity index 100% rename from src/Share/Web/Share/CodeBrowsing/API.hs rename to share-api/src/Share/Web/Share/CodeBrowsing/API.hs diff --git a/src/Share/Web/Share/Comments.hs b/share-api/src/Share/Web/Share/Comments.hs similarity index 100% rename from src/Share/Web/Share/Comments.hs rename to share-api/src/Share/Web/Share/Comments.hs diff --git a/src/Share/Web/Share/Comments/API.hs b/share-api/src/Share/Web/Share/Comments/API.hs similarity index 100% rename from src/Share/Web/Share/Comments/API.hs rename to share-api/src/Share/Web/Share/Comments/API.hs diff --git a/src/Share/Web/Share/Comments/Impl.hs b/share-api/src/Share/Web/Share/Comments/Impl.hs similarity index 100% rename from src/Share/Web/Share/Comments/Impl.hs rename to share-api/src/Share/Web/Share/Comments/Impl.hs diff --git a/src/Share/Web/Share/Comments/Types.hs b/share-api/src/Share/Web/Share/Comments/Types.hs similarity index 100% rename from src/Share/Web/Share/Comments/Types.hs rename to share-api/src/Share/Web/Share/Comments/Types.hs diff --git a/src/Share/Web/Share/Contributions/API.hs b/share-api/src/Share/Web/Share/Contributions/API.hs similarity index 100% rename from src/Share/Web/Share/Contributions/API.hs rename to share-api/src/Share/Web/Share/Contributions/API.hs diff --git a/src/Share/Web/Share/Contributions/Impl.hs b/share-api/src/Share/Web/Share/Contributions/Impl.hs similarity index 99% rename from src/Share/Web/Share/Contributions/Impl.hs rename to share-api/src/Share/Web/Share/Contributions/Impl.hs index b121e098..2615f829 100644 --- a/src/Share/Web/Share/Contributions/Impl.hs +++ b/share-api/src/Share/Web/Share/Contributions/Impl.hs @@ -25,7 +25,7 @@ import Share.Branch qualified as Branch import Share.Codebase qualified as Codebase import Share.Codebase.CodebaseRuntime qualified as CR import Share.Contribution -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.IDs (PrefixedHash (..), ProjectSlug (..), UserHandle) import Share.IDs qualified as IDs import Share.OAuth.Session diff --git a/src/Share/Web/Share/Contributions/MergeDetection.hs b/share-api/src/Share/Web/Share/Contributions/MergeDetection.hs similarity index 100% rename from src/Share/Web/Share/Contributions/MergeDetection.hs rename to share-api/src/Share/Web/Share/Contributions/MergeDetection.hs diff --git a/src/Share/Web/Share/Contributions/Types.hs b/share-api/src/Share/Web/Share/Contributions/Types.hs similarity index 100% rename from src/Share/Web/Share/Contributions/Types.hs rename to share-api/src/Share/Web/Share/Contributions/Types.hs diff --git a/src/Share/Web/Share/DefinitionSearch.hs b/share-api/src/Share/Web/Share/DefinitionSearch.hs similarity index 100% rename from src/Share/Web/Share/DefinitionSearch.hs rename to share-api/src/Share/Web/Share/DefinitionSearch.hs diff --git a/src/Share/Web/Share/Diffs/Impl.hs b/share-api/src/Share/Web/Share/Diffs/Impl.hs similarity index 100% rename from src/Share/Web/Share/Diffs/Impl.hs rename to share-api/src/Share/Web/Share/Diffs/Impl.hs diff --git a/src/Share/Web/Share/Diffs/Types.hs b/share-api/src/Share/Web/Share/Diffs/Types.hs similarity index 100% rename from src/Share/Web/Share/Diffs/Types.hs rename to share-api/src/Share/Web/Share/Diffs/Types.hs diff --git a/src/Share/Web/Share/DisplayInfo/Queries.hs b/share-api/src/Share/Web/Share/DisplayInfo/Queries.hs similarity index 100% rename from src/Share/Web/Share/DisplayInfo/Queries.hs rename to share-api/src/Share/Web/Share/DisplayInfo/Queries.hs diff --git a/src/Share/Web/Share/DisplayInfo/Types.hs b/share-api/src/Share/Web/Share/DisplayInfo/Types.hs similarity index 100% rename from src/Share/Web/Share/DisplayInfo/Types.hs rename to share-api/src/Share/Web/Share/DisplayInfo/Types.hs diff --git a/src/Share/Web/Share/Impl.hs b/share-api/src/Share/Web/Share/Impl.hs similarity index 99% rename from src/Share/Web/Share/Impl.hs rename to share-api/src/Share/Web/Share/Impl.hs index 2ad23dba..42b1f639 100644 --- a/src/Share/Web/Share/Impl.hs +++ b/share-api/src/Share/Web/Share/Impl.hs @@ -15,7 +15,7 @@ import Share.Codebase qualified as Codebase import Share.Codebase.CodeCache qualified as CodeCache import Share.Codebase.CodebaseRuntime qualified as CR import Share.Codebase.Types qualified as Codebase -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.IDs (BranchOrReleaseShortHand (..), TourId, UserHandle (..)) import Share.IDs qualified as IDs import Share.JWT qualified as JWT diff --git a/src/Share/Web/Share/Orgs/API.hs b/share-api/src/Share/Web/Share/Orgs/API.hs similarity index 100% rename from src/Share/Web/Share/Orgs/API.hs rename to share-api/src/Share/Web/Share/Orgs/API.hs diff --git a/src/Share/Web/Share/Orgs/Impl.hs b/share-api/src/Share/Web/Share/Orgs/Impl.hs similarity index 100% rename from src/Share/Web/Share/Orgs/Impl.hs rename to share-api/src/Share/Web/Share/Orgs/Impl.hs diff --git a/src/Share/Web/Share/Orgs/Operations.hs b/share-api/src/Share/Web/Share/Orgs/Operations.hs similarity index 100% rename from src/Share/Web/Share/Orgs/Operations.hs rename to share-api/src/Share/Web/Share/Orgs/Operations.hs diff --git a/src/Share/Web/Share/Orgs/Queries.hs b/share-api/src/Share/Web/Share/Orgs/Queries.hs similarity index 100% rename from src/Share/Web/Share/Orgs/Queries.hs rename to share-api/src/Share/Web/Share/Orgs/Queries.hs diff --git a/src/Share/Web/Share/Orgs/Types.hs b/share-api/src/Share/Web/Share/Orgs/Types.hs similarity index 100% rename from src/Share/Web/Share/Orgs/Types.hs rename to share-api/src/Share/Web/Share/Orgs/Types.hs diff --git a/src/Share/Web/Share/Projects/API.hs b/share-api/src/Share/Web/Share/Projects/API.hs similarity index 100% rename from src/Share/Web/Share/Projects/API.hs rename to share-api/src/Share/Web/Share/Projects/API.hs diff --git a/src/Share/Web/Share/Projects/Impl.hs b/share-api/src/Share/Web/Share/Projects/Impl.hs similarity index 99% rename from src/Share/Web/Share/Projects/Impl.hs rename to share-api/src/Share/Web/Share/Projects/Impl.hs index b89e617e..636c1084 100644 --- a/src/Share/Web/Share/Projects/Impl.hs +++ b/share-api/src/Share/Web/Share/Projects/Impl.hs @@ -19,7 +19,7 @@ import Share.Branch qualified as Branch import Share.Codebase (CodebaseEnv) import Share.Codebase qualified as Codebase import Share.Codebase.CodebaseRuntime qualified as CR -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.IDs (PrefixedHash (..), ProjectSlug (..), UserHandle, UserId) import Share.IDs qualified as IDs import Share.Notifications.Ops qualified as NotifOps diff --git a/src/Share/Web/Share/Projects/Types.hs b/share-api/src/Share/Web/Share/Projects/Types.hs similarity index 100% rename from src/Share/Web/Share/Projects/Types.hs rename to share-api/src/Share/Web/Share/Projects/Types.hs diff --git a/src/Share/Web/Share/Releases/API.hs b/share-api/src/Share/Web/Share/Releases/API.hs similarity index 100% rename from src/Share/Web/Share/Releases/API.hs rename to share-api/src/Share/Web/Share/Releases/API.hs diff --git a/src/Share/Web/Share/Releases/Impl.hs b/share-api/src/Share/Web/Share/Releases/Impl.hs similarity index 99% rename from src/Share/Web/Share/Releases/Impl.hs rename to share-api/src/Share/Web/Share/Releases/Impl.hs index f1303894..50870dc6 100644 --- a/src/Share/Web/Share/Releases/Impl.hs +++ b/share-api/src/Share/Web/Share/Releases/Impl.hs @@ -16,7 +16,7 @@ import Data.Set qualified as Set import Servant import Share.Codebase qualified as Codebase import Share.Codebase.CodebaseRuntime qualified as CR -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.IDs import Share.IDs qualified as IDs import Share.OAuth.Session diff --git a/src/Share/Web/Share/Releases/Types.hs b/share-api/src/Share/Web/Share/Releases/Types.hs similarity index 100% rename from src/Share/Web/Share/Releases/Types.hs rename to share-api/src/Share/Web/Share/Releases/Types.hs diff --git a/src/Share/Web/Share/Roles.hs b/share-api/src/Share/Web/Share/Roles.hs similarity index 100% rename from src/Share/Web/Share/Roles.hs rename to share-api/src/Share/Web/Share/Roles.hs diff --git a/src/Share/Web/Share/Roles/Queries.hs b/share-api/src/Share/Web/Share/Roles/Queries.hs similarity index 100% rename from src/Share/Web/Share/Roles/Queries.hs rename to share-api/src/Share/Web/Share/Roles/Queries.hs diff --git a/src/Share/Web/Share/Teams/Queries.hs b/share-api/src/Share/Web/Share/Teams/Queries.hs similarity index 100% rename from src/Share/Web/Share/Teams/Queries.hs rename to share-api/src/Share/Web/Share/Teams/Queries.hs diff --git a/src/Share/Web/Share/Tickets/API.hs b/share-api/src/Share/Web/Share/Tickets/API.hs similarity index 100% rename from src/Share/Web/Share/Tickets/API.hs rename to share-api/src/Share/Web/Share/Tickets/API.hs diff --git a/src/Share/Web/Share/Tickets/Impl.hs b/share-api/src/Share/Web/Share/Tickets/Impl.hs similarity index 100% rename from src/Share/Web/Share/Tickets/Impl.hs rename to share-api/src/Share/Web/Share/Tickets/Impl.hs diff --git a/src/Share/Web/Share/Tickets/Types.hs b/share-api/src/Share/Web/Share/Tickets/Types.hs similarity index 100% rename from src/Share/Web/Share/Tickets/Types.hs rename to share-api/src/Share/Web/Share/Tickets/Types.hs diff --git a/src/Share/Web/Share/Types.hs b/share-api/src/Share/Web/Share/Types.hs similarity index 100% rename from src/Share/Web/Share/Types.hs rename to share-api/src/Share/Web/Share/Types.hs diff --git a/src/Share/Web/Share/Users/API.hs b/share-api/src/Share/Web/Share/Users/API.hs similarity index 100% rename from src/Share/Web/Share/Users/API.hs rename to share-api/src/Share/Web/Share/Users/API.hs diff --git a/src/Share/Web/Share/Webhooks/API.hs b/share-api/src/Share/Web/Share/Webhooks/API.hs similarity index 100% rename from src/Share/Web/Share/Webhooks/API.hs rename to share-api/src/Share/Web/Share/Webhooks/API.hs diff --git a/src/Share/Web/Share/Webhooks/Impl.hs b/share-api/src/Share/Web/Share/Webhooks/Impl.hs similarity index 99% rename from src/Share/Web/Share/Webhooks/Impl.hs rename to share-api/src/Share/Web/Share/Webhooks/Impl.hs index 73d2ed41..61245ba7 100644 --- a/src/Share/Web/Share/Webhooks/Impl.hs +++ b/share-api/src/Share/Web/Share/Webhooks/Impl.hs @@ -5,7 +5,7 @@ import Data.UUID qualified as UUID import Servant import Share.BackgroundJobs.Webhooks.Types import Share.Contribution -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.IDs import Share.JWT import Share.JWT qualified as JWT diff --git a/src/Share/Web/Support/API.hs b/share-api/src/Share/Web/Support/API.hs similarity index 100% rename from src/Share/Web/Support/API.hs rename to share-api/src/Share/Web/Support/API.hs diff --git a/src/Share/Web/Support/Impl.hs b/share-api/src/Share/Web/Support/Impl.hs similarity index 96% rename from src/Share/Web/Support/Impl.hs rename to share-api/src/Share/Web/Support/Impl.hs index 444539d6..ceba6aa4 100644 --- a/src/Share/Web/Support/Impl.hs +++ b/share-api/src/Share/Web/Support/Impl.hs @@ -7,7 +7,7 @@ import Data.Time qualified as Time import Servant import Share.ChatApps import Share.ChatApps qualified as ChatApps -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.OAuth.Session import Share.Prelude import Share.Web.App diff --git a/src/Share/Web/Support/Types.hs b/share-api/src/Share/Web/Support/Types.hs similarity index 100% rename from src/Share/Web/Support/Types.hs rename to share-api/src/Share/Web/Support/Types.hs diff --git a/src/Share/Web/Types.hs b/share-api/src/Share/Web/Types.hs similarity index 100% rename from src/Share/Web/Types.hs rename to share-api/src/Share/Web/Types.hs diff --git a/src/Share/Web/UCM/Projects/Impl.hs b/share-api/src/Share/Web/UCM/Projects/Impl.hs similarity index 100% rename from src/Share/Web/UCM/Projects/Impl.hs rename to share-api/src/Share/Web/UCM/Projects/Impl.hs diff --git a/src/Share/Web/UCM/Sync/HashJWT.hs b/share-api/src/Share/Web/UCM/Sync/HashJWT.hs similarity index 100% rename from src/Share/Web/UCM/Sync/HashJWT.hs rename to share-api/src/Share/Web/UCM/Sync/HashJWT.hs diff --git a/src/Share/Web/UCM/Sync/Impl.hs b/share-api/src/Share/Web/UCM/Sync/Impl.hs similarity index 99% rename from src/Share/Web/UCM/Sync/Impl.hs rename to share-api/src/Share/Web/UCM/Sync/Impl.hs index a9d8774a..dc284fcb 100644 --- a/src/Share/Web/UCM/Sync/Impl.hs +++ b/share-api/src/Share/Web/UCM/Sync/Impl.hs @@ -26,7 +26,7 @@ import Servant import Share.App import Share.Codebase qualified as Codebase import Share.Codebase.Types (CodebaseEnv) -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.IDs (ProjectBranchShortHand (..), ProjectReleaseShortHand (..), ProjectShortHand (..), UserHandle, UserId) import Share.IDs qualified as IDs import Share.OAuth.Session (Session (..)) diff --git a/src/Share/Web/UCM/Sync/Types.hs b/share-api/src/Share/Web/UCM/Sync/Types.hs similarity index 100% rename from src/Share/Web/UCM/Sync/Types.hs rename to share-api/src/Share/Web/UCM/Sync/Types.hs diff --git a/src/Share/Web/UCM/SyncV2/API.hs b/share-api/src/Share/Web/UCM/SyncV2/API.hs similarity index 100% rename from src/Share/Web/UCM/SyncV2/API.hs rename to share-api/src/Share/Web/UCM/SyncV2/API.hs diff --git a/src/Share/Web/UCM/SyncV2/Impl.hs b/share-api/src/Share/Web/UCM/SyncV2/Impl.hs similarity index 100% rename from src/Share/Web/UCM/SyncV2/Impl.hs rename to share-api/src/Share/Web/UCM/SyncV2/Impl.hs diff --git a/src/Share/Web/UCM/SyncV2/Queries.hs b/share-api/src/Share/Web/UCM/SyncV2/Queries.hs similarity index 100% rename from src/Share/Web/UCM/SyncV2/Queries.hs rename to share-api/src/Share/Web/UCM/SyncV2/Queries.hs diff --git a/src/Share/Web/UCM/SyncV2/Types.hs b/share-api/src/Share/Web/UCM/SyncV2/Types.hs similarity index 100% rename from src/Share/Web/UCM/SyncV2/Types.hs rename to share-api/src/Share/Web/UCM/SyncV2/Types.hs diff --git a/src/Share/Web/UI/Links.hs b/share-api/src/Share/Web/UI/Links.hs similarity index 99% rename from src/Share/Web/UI/Links.hs rename to share-api/src/Share/Web/UI/Links.hs index d620c8af..b5365544 100644 --- a/src/Share/Web/UI/Links.hs +++ b/share-api/src/Share/Web/UI/Links.hs @@ -32,7 +32,7 @@ import Network.URI import Network.URI qualified as URI import Servant (ToHttpApiData (..)) import Share.App -import Share.Env qualified as Env +import Share.Env.Types qualified as Env import Share.IDs import Share.IDs qualified as IDs import Share.Notifications.Types diff --git a/src/Unison/Server/NameSearch/Postgres.hs b/share-api/src/Unison/Server/NameSearch/Postgres.hs similarity index 100% rename from src/Unison/Server/NameSearch/Postgres.hs rename to share-api/src/Unison/Server/NameSearch/Postgres.hs diff --git a/src/Unison/Server/Share/DefinitionSummary.hs b/share-api/src/Unison/Server/Share/DefinitionSummary.hs similarity index 100% rename from src/Unison/Server/Share/DefinitionSummary.hs rename to share-api/src/Unison/Server/Share/DefinitionSummary.hs diff --git a/src/Unison/Server/Share/DefinitionSummary/Types.hs b/share-api/src/Unison/Server/Share/DefinitionSummary/Types.hs similarity index 100% rename from src/Unison/Server/Share/DefinitionSummary/Types.hs rename to share-api/src/Unison/Server/Share/DefinitionSummary/Types.hs diff --git a/src/Unison/Server/Share/Definitions.hs b/share-api/src/Unison/Server/Share/Definitions.hs similarity index 100% rename from src/Unison/Server/Share/Definitions.hs rename to share-api/src/Unison/Server/Share/Definitions.hs diff --git a/src/Unison/Server/Share/Docs.hs b/share-api/src/Unison/Server/Share/Docs.hs similarity index 100% rename from src/Unison/Server/Share/Docs.hs rename to share-api/src/Unison/Server/Share/Docs.hs diff --git a/src/Unison/Server/Share/FuzzyFind.hs b/share-api/src/Unison/Server/Share/FuzzyFind.hs similarity index 100% rename from src/Unison/Server/Share/FuzzyFind.hs rename to share-api/src/Unison/Server/Share/FuzzyFind.hs diff --git a/src/Unison/Server/Share/NamespaceDetails.hs b/share-api/src/Unison/Server/Share/NamespaceDetails.hs similarity index 100% rename from src/Unison/Server/Share/NamespaceDetails.hs rename to share-api/src/Unison/Server/Share/NamespaceDetails.hs diff --git a/src/Unison/Server/Share/NamespaceListing.hs b/share-api/src/Unison/Server/Share/NamespaceListing.hs similarity index 100% rename from src/Unison/Server/Share/NamespaceListing.hs rename to share-api/src/Unison/Server/Share/NamespaceListing.hs diff --git a/src/Unison/Server/Share/RenderDoc.hs b/share-api/src/Unison/Server/Share/RenderDoc.hs similarity index 100% rename from src/Unison/Server/Share/RenderDoc.hs rename to share-api/src/Unison/Server/Share/RenderDoc.hs diff --git a/share-task-runner/README.md b/share-task-runner/README.md new file mode 100644 index 00000000..da402e1c --- /dev/null +++ b/share-task-runner/README.md @@ -0,0 +1 @@ +See root README diff --git a/share-task-runner/app/Main.hs b/share-task-runner/app/Main.hs new file mode 100644 index 00000000..d664a641 --- /dev/null +++ b/share-task-runner/app/Main.hs @@ -0,0 +1,14 @@ +module Main where + +import Share.Env (withEnv) +import Share.BackgroundJobs.Monad +import UnliftIO + +main :: IO () +main = do + withEnv \env -> runBackground env "share-task-runner" task + +task :: Background () +task = do + liftIO $ putStrLn "Hello from the task runner!" + pure () diff --git a/share-task-runner/package.yaml b/share-task-runner/package.yaml new file mode 100644 index 00000000..73ea5987 --- /dev/null +++ b/share-task-runner/package.yaml @@ -0,0 +1,90 @@ +name: share-task-runner +version: 0.1.0.0 +github: "unisoncomputing/share-task-runner" +author: "Unison Computing" +maintainer: "unison.cloud" +copyright: "2024 Unison Computing" + +extra-source-files: +- README.md + +# Metadata used when publishing your package +# synopsis: Short description of your package +# category: Web + +# To avoid duplicated efforts in documentation and dealing with the +# complications of embedding Haddock markup inside cabal files, it is +# common to point users to the README.md file. +description: Please see the README on GitHub at + +ghc-options: +- -Wall +- -Werror +- -Wname-shadowing +- -Wno-type-defaults +- -Wno-missing-pattern-synonym-signatures +- -Wincomplete-uni-patterns +- -Widentities +- -Wredundant-constraints +- -Wpartial-fields +- -fprint-expanded-synonyms +- -fwrite-ide-info +- -O2 +- -funbox-strict-fields + +dependencies: +- base >= 4.7 && < 5 +- share-api +- unliftio + +default-extensions: + - ApplicativeDo + - BangPatterns + - BlockArguments + - DeriveFunctor + - DeriveGeneric + - DeriveFoldable + - DeriveTraversable + - DerivingStrategies + - DerivingVia + - DuplicateRecordFields + - DoAndIfThenElse + - FlexibleContexts + - FlexibleInstances + - GeneralizedNewtypeDeriving + - LambdaCase + - MultiParamTypeClasses + - NamedFieldPuns + - OverloadedStrings + - PatternSynonyms + - RankNTypes + - ScopedTypeVariables + - TupleSections + - TypeApplications + - ViewPatterns + - QuasiQuotes + - BlockArguments + - QuasiQuotes + - ImportQualifiedPost + - OverloadedRecordDot + - NumericUnderscores + +library: + source-dirs: src + when: + - condition: false + other-modules: Paths_share_task_runner + +executables: + share-task-runner: + when: + - condition: false + other-modules: Paths_share_task_runner + main: Main.hs + source-dirs: app + ghc-options: + - -threaded + - -rtsopts + - '"-with-rtsopts=-N -A32m -qn2 -T"' + dependencies: + - share-task-runner diff --git a/share-task-runner/share-task-runner.cabal b/share-task-runner/share-task-runner.cabal new file mode 100644 index 00000000..22ea45f4 --- /dev/null +++ b/share-task-runner/share-task-runner.cabal @@ -0,0 +1,105 @@ +cabal-version: 1.12 + +-- This file has been generated from package.yaml by hpack version 0.38.1. +-- +-- see: https://github.com/sol/hpack + +name: share-task-runner +version: 0.1.0.0 +description: Please see the README on GitHub at +homepage: https://github.com/unisoncomputing/share-task-runner#readme +bug-reports: https://github.com/unisoncomputing/share-task-runner/issues +author: Unison Computing +maintainer: unison.cloud +copyright: 2024 Unison Computing +build-type: Simple +extra-source-files: + README.md + +source-repository head + type: git + location: https://github.com/unisoncomputing/share-task-runner + +library + hs-source-dirs: + src + default-extensions: + ApplicativeDo + BangPatterns + BlockArguments + DeriveFunctor + DeriveGeneric + DeriveFoldable + DeriveTraversable + DerivingStrategies + DerivingVia + DuplicateRecordFields + DoAndIfThenElse + FlexibleContexts + FlexibleInstances + GeneralizedNewtypeDeriving + LambdaCase + MultiParamTypeClasses + NamedFieldPuns + OverloadedStrings + PatternSynonyms + RankNTypes + ScopedTypeVariables + TupleSections + TypeApplications + ViewPatterns + QuasiQuotes + BlockArguments + QuasiQuotes + ImportQualifiedPost + OverloadedRecordDot + NumericUnderscores + ghc-options: -Wall -Werror -Wname-shadowing -Wno-type-defaults -Wno-missing-pattern-synonym-signatures -Wincomplete-uni-patterns -Widentities -Wredundant-constraints -Wpartial-fields -fprint-expanded-synonyms -fwrite-ide-info -O2 -funbox-strict-fields + build-depends: + base >=4.7 && <5 + , share-api + , unliftio + default-language: Haskell2010 + +executable share-task-runner + main-is: Main.hs + hs-source-dirs: + app + default-extensions: + ApplicativeDo + BangPatterns + BlockArguments + DeriveFunctor + DeriveGeneric + DeriveFoldable + DeriveTraversable + DerivingStrategies + DerivingVia + DuplicateRecordFields + DoAndIfThenElse + FlexibleContexts + FlexibleInstances + GeneralizedNewtypeDeriving + LambdaCase + MultiParamTypeClasses + NamedFieldPuns + OverloadedStrings + PatternSynonyms + RankNTypes + ScopedTypeVariables + TupleSections + TypeApplications + ViewPatterns + QuasiQuotes + BlockArguments + QuasiQuotes + ImportQualifiedPost + OverloadedRecordDot + NumericUnderscores + ghc-options: -Wall -Werror -Wname-shadowing -Wno-type-defaults -Wno-missing-pattern-synonym-signatures -Wincomplete-uni-patterns -Widentities -Wredundant-constraints -Wpartial-fields -fprint-expanded-synonyms -fwrite-ide-info -O2 -funbox-strict-fields -threaded -rtsopts "-with-rtsopts=-N -A32m -qn2 -T" + build-depends: + base >=4.7 && <5 + , share-api + , share-task-runner + , unliftio + default-language: Haskell2010 diff --git a/stack.yaml b/stack.yaml index dfd3d48e..0b09d731 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,7 +1,8 @@ resolver: lts-22.26 packages: -- . +- share-api +- share-task-runner - share-auth - share-auth/example - share-utils