diff options
author | terminaldweller <thabogre@gmail.com> | 2021-05-14 18:14:50 +0000 |
---|---|---|
committer | terminaldweller <thabogre@gmail.com> | 2021-05-14 18:14:50 +0000 |
commit | 6e528248414e330c9e25e81596ab47b8b8a5b701 (patch) | |
tree | e1aa41a7f3198eeac187e6177ec7d4a33db229d3 /makefile | |
download | scripts-master.tar.gz scripts-master.zip |
first commitmaster
Diffstat (limited to 'makefile')
-rw-r--r-- | makefile | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/makefile b/makefile new file mode 100644 index 0000000..2f3db80 --- /dev/null +++ b/makefile @@ -0,0 +1,102 @@ +SOLC?=solc +NODE?=node +NPM?=npm +PKG_MAN?=dnf +TEST_SERVER?=testrpc +TEST_SERVER_OPTS?=-d &>/dev/null & +NODEJS_TEST?=test.js +LINTER?=solium +DOX?=doxity +EXTRA_BIN_FLAGS?= +EXTRA_ABI_FLAGS?= +CONTRACT_DIR?=./contracts +NODE_MIN_VERSION=7.6.0 +SHELL?=/bin/bash + +CONTRACTS=$(wildcard *.sol) +BIN_DIRS=$(wildcard *.bin) +BIN_FLAGS= --bin --overwrite +ABI_FLAGS= --abi --overwrite + +BIN_FLAGS+=$(EXTRA_BIN_FLAGS) +ABI_FLAGS+=$(EXTRA_ABI_FLAGS) + +.PHONY: all clean run runtestserver requirements rungeth loadgethjs killserver doxity solium init buld checknodeversion + +.DEFAULT: all + +all: $(patsubst %.sol, %.bin, $(wildcard *.sol)) runtestserver run + +build: $(patsubst $(CONTRACT_DIR)/%.sol, $(CONTRACT_DIR)/%.bin, $(wildcard $(CONTRACT_DIR)/*.sol)) + +%.bin:%.sol + $(SOLC) $(BIN_FLAGS) -o $@ $< + $(SOLC) $(ABI_FLAGS) -o $@ $< + +run: + $(NODE) $(NODEJS_TEST) + +init: + mkdir .devi + $(NPM) install + +rungeth: makeattach + geth --verbosity 6 --dev --rpc --rpcapi admin,miner,eth,net,web3,personal --rpcaddr "localhost" --rpcport "8545" --port "30303" --datadir /tmp/ethereum_dev_mode &>/dev/null & + PID=$! + sleep 2 + geth --exec 'loadScript("./.devi/gethconfig.js")' attach http://127.0.0.1:8545 + node $(NODEJS_TEST) + kill -9 $(pgrep geth) + kill -9 $$PID + +makeattach: + @echo "miner.setEtherbase(eth.accounts[0])" > ./.devi/gethconfig.js + @echo "miner.start(2)" >> ./.devi/gethconfig.js + +runparity: + parity --chain dev --unlock 0x00a329c0648769a73afac7f9381e08fb43dbea72 --password ./password.txt 2>&1 & + PID=$! + +clean: + rm -rf $(CONTRACT_DIR)/*.bin + +doxity: + if [[ -d ./scripts/doxity ]]; then :;else doxity init;fi && doxity build && doxity publish + +lint: + if [[ -d ./soliumrc.json ]]; then :; else solium --init;fi && solium --dir . + +checknodeversion: + @./vimeth/checknodeversion.sh + +requirements: + $(NPM) --version + if [[ $$? != 0 ]]; then sudo $(PKG_MAN) install npm + $(NODE) --version + if [[ $$? != 0 ]]; then sudo $(PKG_MAN) install nodejs + # npm is known not to be able to install web3 globally on all systems + $(NPM) install web3 + $(NPM) install log4js + # install ethereum-testrpc + sudo $(NPM) install -g ethereum-testrpc + +runtestserver: + $(shell if ! pgrep -x "testrpc" > /dev/null; then $(TEST_SERVER) $(TEST_SERVER_OPTS), disown, echo disowned, sleep 2; else :; fi) + +killserver: + $(shell kill -9 $(pgrep -x "testrpc")) + +help: + @echo ' the ide part thats missing for eth dev from vim.' + @echo ' all: is the default target. builds bin, abi and runs node.' + @echo ' build: builds the solidity contracts.' + @echo ' run: just runs node on test.js.' + @echo ' rungeth: will run geth.' + @echo ' kilgeth: will kill geth.' + @echo ' runtestserver: runs your test server. the default is testrpc.' + @echo ' killserver will kill the testrpc server.' + @echo ' requirements: installs the requiremnts.' + @echo ' clean: remove the bin and abi folder.' + @echo ' lint will run the solium linter.' + @echo ' doxity will build the docs.' + @echo ' if you are not running an ancient shell, tab will give you the macros that you can change.' |