├── README.md ├── Formula └── datacontract.rb └── .gitignore /README.md: -------------------------------------------------------------------------------- 1 | # Data Contract CLI Homebrew Formula 2 | 3 | > This repository is no longer maintained, use a different installation method for data contract CLI: https://github.com/datacontract/datacontract-cli?tab=readme-ov-file#installation 4 | -------------------------------------------------------------------------------- /Formula/datacontract.rb: -------------------------------------------------------------------------------- 1 | class Datacontract < Formula 2 | include Language::Python::Virtualenv 3 | desc "The datacontract CLI is an open source command-line tool for working with Data Contracts. It uses data contract YAML files to lint the data contract, connect to data sources and execute schema and quality tests, detect breaking changes, and export to different formats. The tool is written in Python." 4 | homepage "https://cli.datacontract.com/" 5 | url "https://github.com/datacontract/cli/releases/download/v0.9.3/datacontract-cli-0.9.3.tar.gz" 6 | sha256 "4f8e8423eedf6381828b9b354c434cc6d3f94ebcf09b43ebabc7fc32ccc5ed78" 7 | license "MIT" 8 | 9 | depends_on "python@3.11" 10 | 11 | def install 12 | venv = virtualenv_create(libexec, "python3", without_pip: false) 13 | venv.pip_install "setuptools" 14 | venv.pip_install "wheel" 15 | venv.pip_install_and_link buildpath 16 | end 17 | 18 | test do 19 | system "#{bin}/datacontract", "--version" 20 | end 21 | end 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### JetBrains template 2 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider 3 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 4 | 5 | # User-specific stuff 6 | .idea/**/workspace.xml 7 | .idea/**/tasks.xml 8 | .idea/**/usage.statistics.xml 9 | .idea/**/dictionaries 10 | .idea/**/shelf 11 | 12 | # AWS User-specific 13 | .idea/**/aws.xml 14 | 15 | # Generated files 16 | .idea/**/contentModel.xml 17 | 18 | # Sensitive or high-churn files 19 | .idea/**/dataSources/ 20 | .idea/**/dataSources.ids 21 | .idea/**/dataSources.local.xml 22 | .idea/**/sqlDataSources.xml 23 | .idea/**/dynamic.xml 24 | .idea/**/uiDesigner.xml 25 | .idea/**/dbnavigator.xml 26 | 27 | # Gradle 28 | .idea/**/gradle.xml 29 | .idea/**/libraries 30 | 31 | # Gradle and Maven with auto-import 32 | # When using Gradle or Maven with auto-import, you should exclude module files, 33 | # since they will be recreated, and may cause churn. Uncomment if using 34 | # auto-import. 35 | # .idea/artifacts 36 | # .idea/compiler.xml 37 | # .idea/jarRepositories.xml 38 | # .idea/modules.xml 39 | # .idea/*.iml 40 | # .idea/modules 41 | # *.iml 42 | # *.ipr 43 | idea/ 44 | 45 | # CMake 46 | cmake-build-*/ 47 | 48 | # Mongo Explorer plugin 49 | .idea/**/mongoSettings.xml 50 | 51 | # File-based project format 52 | *.iws 53 | 54 | # IntelliJ 55 | out/ 56 | 57 | # mpeltonen/sbt-idea plugin 58 | .idea_modules/ 59 | 60 | # JIRA plugin 61 | atlassian-ide-plugin.xml 62 | 63 | # Cursive Clojure plugin 64 | .idea/replstate.xml 65 | 66 | # SonarLint plugin 67 | .idea/sonarlint/ 68 | 69 | # Crashlytics plugin (for Android Studio and IntelliJ) 70 | com_crashlytics_export_strings.xml 71 | crashlytics.properties 72 | crashlytics-build.properties 73 | fabric.properties 74 | 75 | # Editor-based Rest Client 76 | .idea/httpRequests 77 | 78 | # Android studio 3.1+ serialized cache file 79 | .idea/caches/build_file_checksums.ser 80 | 81 | ### Python template 82 | # Byte-compiled / optimized / DLL files 83 | __pycache__/ 84 | *.py[cod] 85 | *$py.class 86 | 87 | # C extensions 88 | *.so 89 | 90 | # Distribution / packaging 91 | .Python 92 | build/ 93 | develop-eggs/ 94 | dist/ 95 | downloads/ 96 | eggs/ 97 | .eggs/ 98 | lib/ 99 | lib64/ 100 | parts/ 101 | sdist/ 102 | var/ 103 | wheels/ 104 | share/python-wheels/ 105 | *.egg-info/ 106 | .installed.cfg 107 | *.egg 108 | MANIFEST 109 | 110 | # PyInstaller 111 | # Usually these files are written by a python script from a template 112 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 113 | *.manifest 114 | *.spec 115 | 116 | # Installer logs 117 | pip-log.txt 118 | pip-delete-this-directory.txt 119 | 120 | # Unit test / coverage reports 121 | htmlcov/ 122 | .tox/ 123 | .nox/ 124 | .coverage 125 | .coverage.* 126 | .cache 127 | nosetests.xml 128 | coverage.xml 129 | *.cover 130 | *.py,cover 131 | .hypothesis/ 132 | .pytest_cache/ 133 | cover/ 134 | 135 | # Translations 136 | *.mo 137 | *.pot 138 | 139 | # Django stuff: 140 | *.log 141 | local_settings.py 142 | db.sqlite3 143 | db.sqlite3-journal 144 | 145 | # Flask stuff: 146 | instance/ 147 | .webassets-cache 148 | 149 | # Scrapy stuff: 150 | .scrapy 151 | 152 | # Sphinx documentation 153 | docs/_build/ 154 | 155 | # PyBuilder 156 | .pybuilder/ 157 | target/ 158 | 159 | # Jupyter Notebook 160 | .ipynb_checkpoints 161 | 162 | # IPython 163 | profile_default/ 164 | ipython_config.py 165 | 166 | # pyenv 167 | # For a library or package, you might want to ignore these files since the code is 168 | # intended to run in multiple environments; otherwise, check them in: 169 | # .python-version 170 | 171 | # pipenv 172 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 173 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 174 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 175 | # install all needed dependencies. 176 | #Pipfile.lock 177 | 178 | # poetry 179 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 180 | # This is especially recommended for binary packages to ensure reproducibility, and is more 181 | # commonly ignored for libraries. 182 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 183 | #poetry.lock 184 | 185 | # pdm 186 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. 187 | #pdm.lock 188 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it 189 | # in version control. 190 | # https://pdm.fming.dev/#use-with-ide 191 | .pdm.toml 192 | 193 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm 194 | __pypackages__/ 195 | 196 | # Celery stuff 197 | celerybeat-schedule 198 | celerybeat.pid 199 | 200 | # SageMath parsed files 201 | *.sage.py 202 | 203 | # Environments 204 | .env 205 | .venv 206 | env/ 207 | venv/ 208 | ENV/ 209 | env.bak/ 210 | venv.bak/ 211 | 212 | # Spyder project settings 213 | .spyderproject 214 | .spyproject 215 | 216 | # Rope project settings 217 | .ropeproject 218 | 219 | # mkdocs documentation 220 | /site 221 | 222 | # mypy 223 | .mypy_cache/ 224 | .dmypy.json 225 | dmypy.json 226 | 227 | # Pyre type checker 228 | .pyre/ 229 | 230 | # pytype static type analyzer 231 | .pytype/ 232 | 233 | # Cython debug symbols 234 | cython_debug/ 235 | 236 | # PyCharm 237 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 238 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 239 | # and can be added to the global gitignore or merged into this file. For a more nuclear 240 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 241 | .idea/ 242 | 243 | --------------------------------------------------------------------------------