Package: power-daps
Welcome to power-dapsAboutpower-daps is a build tool that can build apps in multiple languages. It also has templates to speed up creation of "hello world" apps in different languages. It has a plugin architecture which allows people to add support for more languages and styles easily.InstallationAcross platforms with Python 3pip3 install power-dapsMac OS (not yet supported)brew install power-dapsCentOS or RedHat (not yet supported)yum install power-dapsUbuntu or Debian (not yet supported)apt-get install power-dapsUsage (currently)Create a new appSpecify the type of app by specifying which meta model you want to use.Meta models can be specified by the--meta-modelor-mflagFew built-in meta models are provided with power-daps:
Java, Python 3, ES 6 and Rust. Here is how you initialize apps with dap
in these languages.Javadap init --meta-model power_daps/javaPythondap init --meta-model power_daps/python3ECMA Scriptdap init --meta-model power_daps/es6Rustdap init --meta-model power_daps/rustBuild the appIf you have initialized the application withdap init, then justdapwill do what is needed
by looking atactions.ymlat the root of your project. However, you can use the following commands
depending on the language:dap depsto install dependenciesdap compileif your language requires compilingdap compile_testdap unit_testdap packageAdding dependenciesEdit dependencies.yml at the root level of your project and add dependencies.
'default' here will eventually be 'run' or 'test' etc depending the scope of the dependency. A given app can have dependencies using different package managers. For example, sometimes you may want something that is installed using 'brew_cask' in a python app.Examples:Javadefault:
  junit:
    version: "4.13"
    installer: jar
    group_id: junitPythondefault:
  pyyaml:
    version: 5.3
    installer: pip3ES6default:
  bulma:
    version: latest
    installer: npmCargo / Rustdefault:
  ripgrep:
    version: latest
    installer: cargoUsage (eventually)As a suite of toolsCreating something newdap create suitedap create app <app-name>dap create data-source <app-name>/<data-source-name>[:<data-source-type>]where<data-source-type>ispostgres,mysql,oracle,mongodb,cassandra,csv-fetchetc.Working with existing application suitesThe basic structure for using dap is:dap <target>. This will run all preceding targets in the chain, unless you tell it to only run that target by runningdap only <target>. Only targets that need to run will run unless you force it by runningdap force <target>. If you only want to force one target, rundap force only <target>.The following targets are provided by default for Java development:deps: Resolve, download and verify dependencies.compile: Compile application and test code for compiled languages.unit-test: Run unit tests.package: Package the jar or the war or the pip or the gem or the rpm or the docker image.deploy: Spin up necessary environment, and deploy the necessary components and apps.functional-test: Run functional tests on the deployed app.As stand-alone toolsEach Power Daps target comes as a stand-alone command:dap-createdap-depsdap-compiledap-unit-testdap-packagedap-deploydap-functional-testAppendixComplete target tree:allordefaultor if you omit a targetdepsresolve-depsdownload-depsverify-depsvalidatecompilecompile-appcompile-testunit-testpackageorjarorwardeploydeploy-machinescheck-machinesstop-machinesclean-machinesstart-machinesdeploy-dependenciesload-datacheck-data-storesclean-data-storescreate-schemapopulate-datamigrate-schemamigrate-datacomponent-testcontract-testintegration-testfunctional-testDetails of what happens when creating a new application suiteCreate a new suite by runningdap create suite [dir]. This will create the following directory structure in the current directory or the specified directory:appsbindashboardenvtestintegration-testfunctional-testDetails of what happens when creating a new application in the current suitedap create app <name>will create the following structure under the<name>directory underapps:configidentitydatasourcessample-rdbmsschema-migrations000-initial-schema.sqldata-migrations000-000-initial-data.sqlsrctestunit-testcomponent-testcontract-testCreating a data source for an appdap create data-source <app-name>/<data-source-name>[:<data-source-type>]where<data-source-type>ispostgres,mysql,oracle,mongodb,cassandra,csv-fetchetc.csv-fetchwill allow you to setup a periodic sftp download of CSV files from multiple sources and load them into a particular location accessible to the application.LicensePower Daps is released underGNU Public License v3.0CopyrightCopyright © 2016, Prasanna Pendse