``` ______ _ / ____/_ ______ ____ _(_) / /_ / / / / __ \/ __ `/ / / __/ / /_/ / / / / /_/ / / /_/ \__,_/_/ /_/\__, /_/ /____/
npm install fungi``/ /
______ _
/ ____/_ ______ ____ _(_)
/ /_ / / / / __ \/ __
/ __/ / /_/ / / / / /_/ / /
/_/ \__,_/_/ /_/\__, /_/
/____/
Extensible command-line tool
``
Overview
--------
Fungi is an Extensible command line tool. extensions come packaged in boxes.
Boxes
-----
* DApp development (eosio cpp, eosio assemblyscript - TBD, solidity - TBD)
* More coming soon.
Demos
-----
* helloworld - !helloworld
* deploy token - !token
Getting stared
--------------
* Docker
* nodejs >= 10
* curl
* https://github.com/EOSIO/eos/blob/master/eosio_install.sh (not mandatory)
``
npm install -g fungi
docker pull tmuskal/eosio.cdt
docker pull tmuskal/fungi-eosio-dev
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
choco install -y vcbuildtools docker docker-machine docker-compose
docker-machine create -d hyperv default
`Upgrade
`
npm update -g fungi
`Test
`
fungi unbox helloworld --test
`Usage inside a project
`
fungi --help
`$3
`
fungi list-boxes
`$3
`
fungi update --repos
`Project structure
Directory structure:
`
extensions/
contracts/
frontends/
models/
test/
migrations/
utils/
services/
fungi-box.json
fungi-config.js
`
fungi-box.json:
`
{
"ignore": [
"README.md"
],
"commands": {
"Compile contracts": "fungi compile",
"Migrate contracts": "fungi migrate",
"Test contracts": "fungi test"
},
"install":{
"npm": {
}
},
"hooks": {
"post-unpack": "echo hello"
}
}
`fungi-config.js
`
module.exports = {
defaultArgs:{
chain:"eos",
network:"development"
},
chains:{
eos:{
networks: {
development: {
host: "localhost",
port: 7545,
network_id: "*", // Match any network id
secured: false
},
jungle: {
host: "localhost",
port: 7545,
network_id: "*", // Match any network id
secured: false
},
mainnet:{
host: "localhost",
port: 7545,
network_id: "*", // Match any network id
secured: false
}
}
}
}
};
``