10 changed files with 242 additions and 32 deletions
@ -0,0 +1,184 @@ |
|||
# This file contains the configuration for Credo and you are probably reading |
|||
# this after creating it with `mix credo.gen.config`. |
|||
# |
|||
# If you find anything wrong or unclear in this file, please report an |
|||
# issue on GitHub: https://github.com/rrrene/credo/issues |
|||
# |
|||
%{ |
|||
# |
|||
# You can have as many configs as you like in the `configs:` field. |
|||
configs: [ |
|||
%{ |
|||
# |
|||
# Run any config using `mix credo -C <name>`. If no config name is given |
|||
# "default" is used. |
|||
# |
|||
name: "default", |
|||
# |
|||
# These are the files included in the analysis: |
|||
files: %{ |
|||
# |
|||
# You can give explicit globs or simply directories. |
|||
# In the latter case `**/*.{ex,exs}` will be used. |
|||
# |
|||
included: [ |
|||
"lib/", |
|||
"test/", |
|||
], |
|||
excluded: [~r"/_build/", ~r"/deps/", ~r"/node_modules/"] |
|||
}, |
|||
# |
|||
# Load and configure plugins here: |
|||
# |
|||
plugins: [], |
|||
# |
|||
# If you create your own checks, you must specify the source files for |
|||
# them here, so they can be loaded by Credo before running the analysis. |
|||
# |
|||
requires: [], |
|||
# |
|||
# If you want to enforce a style guide and need a more traditional linting |
|||
# experience, you can change `strict` to `true` below: |
|||
# |
|||
strict: true, |
|||
# |
|||
# To modify the timeout for parsing files, change this value: |
|||
# |
|||
parse_timeout: 5000, |
|||
# |
|||
# If you want to use uncolored output by default, you can change `color` |
|||
# to `false` below: |
|||
# |
|||
color: true, |
|||
# |
|||
# You can customize the parameters of any check by adding a second element |
|||
# to the tuple. |
|||
# |
|||
# To disable a check put `false` as second element: |
|||
# |
|||
# {Credo.Check.Design.DuplicatedCode, false} |
|||
# |
|||
checks: [ |
|||
# |
|||
## Consistency Checks |
|||
# |
|||
{Credo.Check.Consistency.ExceptionNames, []}, |
|||
{Credo.Check.Consistency.LineEndings, []}, |
|||
{Credo.Check.Consistency.ParameterPatternMatching, []}, |
|||
{Credo.Check.Consistency.SpaceAroundOperators, []}, |
|||
{Credo.Check.Consistency.SpaceInParentheses, []}, |
|||
{Credo.Check.Consistency.TabsOrSpaces, []}, |
|||
|
|||
# |
|||
## Design Checks |
|||
# |
|||
# You can customize the priority of any check |
|||
# Priority values are: `low, normal, high, higher` |
|||
# |
|||
{Credo.Check.Design.AliasUsage, |
|||
[priority: :low, if_nested_deeper_than: 2, if_called_more_often_than: 0]}, |
|||
# You can also customize the exit_status of each check. |
|||
# If you don't want TODO comments to cause `mix credo` to fail, just |
|||
# set this value to 0 (zero). |
|||
# |
|||
{Credo.Check.Design.TagTODO, [exit_status: 2]}, |
|||
{Credo.Check.Design.TagFIXME, []}, |
|||
|
|||
# |
|||
## Readability Checks |
|||
# |
|||
{Credo.Check.Readability.AliasOrder, []}, |
|||
{Credo.Check.Readability.FunctionNames, []}, |
|||
{Credo.Check.Readability.LargeNumbers, []}, |
|||
{Credo.Check.Readability.MaxLineLength, [priority: :low, max_length: 120]}, |
|||
{Credo.Check.Readability.ModuleAttributeNames, []}, |
|||
{Credo.Check.Readability.ModuleDoc, false}, |
|||
{Credo.Check.Readability.ModuleNames, []}, |
|||
{Credo.Check.Readability.ParenthesesInCondition, []}, |
|||
{Credo.Check.Readability.ParenthesesOnZeroArityDefs, []}, |
|||
{Credo.Check.Readability.PredicateFunctionNames, []}, |
|||
{Credo.Check.Readability.PreferImplicitTry, []}, |
|||
{Credo.Check.Readability.RedundantBlankLines, []}, |
|||
{Credo.Check.Readability.Semicolons, []}, |
|||
{Credo.Check.Readability.SpaceAfterCommas, []}, |
|||
# {Credo.Check.Readability.Specs, []}, |
|||
{Credo.Check.Readability.StringSigils, []}, |
|||
{Credo.Check.Readability.TrailingBlankLine, []}, |
|||
{Credo.Check.Readability.TrailingWhiteSpace, []}, |
|||
{Credo.Check.Readability.UnnecessaryAliasExpansion, []}, |
|||
{Credo.Check.Readability.VariableNames, []}, |
|||
|
|||
# |
|||
## Refactoring Opportunities |
|||
# |
|||
{Credo.Check.Refactor.CondStatements, []}, |
|||
{Credo.Check.Refactor.CyclomaticComplexity, []}, |
|||
{Credo.Check.Refactor.FunctionArity, []}, |
|||
{Credo.Check.Refactor.LongQuoteBlocks, []}, |
|||
# {Credo.Check.Refactor.MapInto, []}, |
|||
{Credo.Check.Refactor.MatchInCondition, []}, |
|||
{Credo.Check.Refactor.NegatedConditionsInUnless, []}, |
|||
{Credo.Check.Refactor.NegatedConditionsWithElse, []}, |
|||
{Credo.Check.Refactor.Nesting, []}, |
|||
{Credo.Check.Refactor.UnlessWithElse, []}, |
|||
{Credo.Check.Refactor.WithClauses, []}, |
|||
|
|||
# |
|||
## Warnings |
|||
# |
|||
{Credo.Check.Warning.ApplicationConfigInModuleAttribute, []}, |
|||
{Credo.Check.Warning.BoolOperationOnSameValues, []}, |
|||
{Credo.Check.Warning.ExpensiveEmptyEnumCheck, []}, |
|||
{Credo.Check.Warning.IExPry, []}, |
|||
{Credo.Check.Warning.IoInspect, []}, |
|||
# {Credo.Check.Warning.LazyLogging, []}, |
|||
{Credo.Check.Warning.MixEnv, false}, |
|||
{Credo.Check.Warning.OperationOnSameValues, []}, |
|||
{Credo.Check.Warning.OperationWithConstantResult, []}, |
|||
{Credo.Check.Warning.RaiseInsideRescue, []}, |
|||
{Credo.Check.Warning.UnusedEnumOperation, []}, |
|||
{Credo.Check.Warning.UnusedFileOperation, []}, |
|||
{Credo.Check.Warning.UnusedKeywordOperation, []}, |
|||
{Credo.Check.Warning.UnusedListOperation, []}, |
|||
{Credo.Check.Warning.UnusedPathOperation, []}, |
|||
{Credo.Check.Warning.UnusedRegexOperation, []}, |
|||
{Credo.Check.Warning.UnusedStringOperation, []}, |
|||
{Credo.Check.Warning.UnusedTupleOperation, []}, |
|||
{Credo.Check.Warning.UnsafeExec, []}, |
|||
|
|||
# |
|||
# Checks scheduled for next check update (opt-in for now, just replace `false` with `[]`) |
|||
|
|||
# |
|||
# Controversial and experimental checks (opt-in, just replace `false` with `[]`) |
|||
# |
|||
{Credo.Check.Consistency.MultiAliasImportRequireUse, []}, |
|||
{Credo.Check.Consistency.UnusedVariableNames, false}, |
|||
{Credo.Check.Design.DuplicatedCode, []}, |
|||
{Credo.Check.Readability.AliasAs, []}, |
|||
{Credo.Check.Readability.BlockPipe, []}, |
|||
{Credo.Check.Readability.ImplTrue, []}, |
|||
{Credo.Check.Readability.MultiAlias, []}, |
|||
{Credo.Check.Readability.SeparateAliasRequire, []}, |
|||
{Credo.Check.Readability.SinglePipe, false}, |
|||
{Credo.Check.Readability.Specs, false}, |
|||
{Credo.Check.Readability.StrictModuleLayout, []}, |
|||
{Credo.Check.Readability.WithCustomTaggedTuple, []}, |
|||
{Credo.Check.Refactor.ABCSize, []}, |
|||
{Credo.Check.Refactor.AppendSingleItem, []}, |
|||
{Credo.Check.Refactor.DoubleBooleanNegation, []}, |
|||
{Credo.Check.Refactor.ModuleDependencies, []}, |
|||
{Credo.Check.Refactor.NegatedIsNil, []}, |
|||
{Credo.Check.Refactor.PipeChainStart, false}, |
|||
{Credo.Check.Refactor.VariableRebinding, []}, |
|||
{Credo.Check.Warning.LeakyEnvironment, []}, |
|||
{Credo.Check.Warning.MapGetUnsafePass, []}, |
|||
{Credo.Check.Warning.UnsafeToAtom, []} |
|||
|
|||
# |
|||
# Custom checks can be created using `mix credo.gen.check`. |
|||
# |
|||
] |
|||
} |
|||
] |
|||
} |
@ -0,0 +1,30 @@ |
|||
version: '3.9' |
|||
|
|||
services: |
|||
dps: |
|||
image: dps |
|||
container_name: dps |
|||
environment: |
|||
LANG: C.UTF-8 |
|||
DATABASE_URL: ecto://postgres:postgres@db/dps_dev |
|||
RELEASE_COOKIE: secret-cookie |
|||
SECRET_KEY_BASE: kZ3O750w/sd7CcXO9053xWGTlOW3dYtLORLiYKqOL25UwboP/TJZz5g+YhOVLzOy |
|||
SERVICE_NAME: dps |
|||
APP_HOST: localhost |
|||
APP_PORT: 4000 |
|||
AUTH_PASSWORD: secret |
|||
AUTH_USERNAME: user |
|||
PORT: 4000 |
|||
depends_on: |
|||
- db |
|||
ports: |
|||
- "4000:4000" |
|||
|
|||
db: |
|||
image: postgres:13 |
|||
container_name: dps-db |
|||
ports: |
|||
- "5432:5432" |
|||
environment: |
|||
POSTGRES_DB: dps_dev |
|||
POSTGRES_PASSWORD: postgres |
@ -1,23 +0,0 @@ |
|||
defmodule Mix.Tasks.Postgres do |
|||
use Mix.Task |
|||
|
|||
@shortdoc "Start/stops a local postgres docker contaienr" |
|||
def run(args) do |
|||
case args do |
|||
["stop" | _] -> |
|||
Mix.shell().info("Stopping postgres docker container") |
|||
Mix.Shell.cmd("docker kill dps-postgres", &IO.write(&1)) |
|||
|
|||
["start" | _] -> |
|||
Mix.shell().info("Starting postgres docker container") |
|||
|
|||
Mix.Shell.cmd( |
|||
"docker run --rm --name dps-postgres -p 5432:5432 -e POSTGRES_PASSWORD=postgres -d postgres", |
|||
&IO.write(&1) |
|||
) |
|||
|
|||
_ -> |
|||
Mix.shell().error("Please pass either the 'start' or 'stop' command") |
|||
end |
|||
end |
|||
end |
Loading…
Reference in new issue