added source check, minor fixes

This commit is contained in:
mahim23 2018-09-10 21:45:29 +05:30
parent 6a843982fb
commit d0688779fb

102
run.ps1
View File

@ -1,6 +1,8 @@
function Run-Embark { #requires -version 3.0
function Assign-Value( [parameter( Mandatory = $false )] [string] $Var, $Default) { function Start-Embark {
function Set-Value( [parameter( Mandatory = $false )] [string] $Var, $Default) {
begin{ begin{
if(-not ($Var)) { if(-not ($Var)) {
$Var = $Default $Var = $Default
@ -12,14 +14,14 @@ function Run-Embark {
end{} end{}
} }
$EMBARK_DOCKER_MOUNT_SOURCE = Assign-Value $Env:EMBARK_DOCKER_MOUNT_SOURCE $pwd $EMBARK_DOCKER_MOUNT_SOURCE = Set-Value $Env:EMBARK_DOCKER_MOUNT_SOURCE $pwd
$EMBARK_DOCKER_MOUNT_TARGET = Assign-Value $Env:EMBARK_DOCKER_MOUNT_TARGET "/dapp" $EMBARK_DOCKER_MOUNT_TARGET = Set-Value $Env:EMBARK_DOCKER_MOUNT_TARGET "/dapp"
$EMBARK_DOCKER_RUN = $Env:EMBARK_DOCKER_RUN $EMBARK_DOCKER_RUN = $Env:EMBARK_DOCKER_RUN
$EMBARK_DOCKER_IMAGE = Assign-Value $Env:EMBARK_DOCKER_IMAGE "statusim/embark" $EMBARK_DOCKER_IMAGE = Set-Value $Env:EMBARK_DOCKER_IMAGE "statusim/embark"
$EMBARK_DOCKER_RUN_INTERACTIVE = Assign-Value $Env:EMBARK_DOCKER_RUN_INTERACTIVE $false $EMBARK_DOCKER_RUN_INTERACTIVE = Set-Value $Env:EMBARK_DOCKER_RUN_INTERACTIVE $false
$EMBARK_DOCKER_RUN_OPTS_REPLACE = Assign-Value $Env:EMBARK_DOCKER_RUN_OPTS_REPLACE $false $EMBARK_DOCKER_RUN_OPTS_REPLACE = Set-Value $Env:EMBARK_DOCKER_RUN_OPTS_REPLACE $false
$EMBARK_DOCKER_RUN_RM = Assign-Value $Env:EMBARK_DOCKER_RUN_RM $true $EMBARK_DOCKER_RUN_RM = Set-Value $Env:EMBARK_DOCKER_RUN_RM $true
$EMBARK_DOCKER_TAG = Assign-Value $Env:EMBARK_DOCKER_TAG "latest" $EMBARK_DOCKER_TAG = Set-Value $Env:EMBARK_DOCKER_TAG "latest"
$run_opts = @( $run_opts = @(
"-i", "-i",
@ -60,28 +62,32 @@ function Run-Embark {
function Cleanup { function Cleanup {
$retval = $lastexitcode $retval = $lastexitcode
Remove-Item -Path Function:\Check-Docker Remove-Item -Path Function:\Confirm-Docker
Remove-Item -Path Function:\Cleanup Remove-Item -Path Function:\Cleanup
return $retval return $retval
} }
function Check-Docker () { function Confirm-Docker () {
if (-not (Get-Command docker -errorAction SilentlyContinue)) { if (-not (Get-Command docker -errorAction SilentlyContinue)) {
"Error: the command \`docker\` must be in a path on \$PATH or aliased" "Error: the command ``docker`` must be in a path on `$PATH or aliased"
return 127 return 127
} }
} }
Check-Docker Confirm-Docker
if (-not($?)) {
return Cleanup
}
$had_run_opts = $false $had_run_opts = $false
$_run_opts = @() $_run_opts = @()
$_cmd = @() $_cmd = @()
$cmd = @() $cmd = @()
$i = 1 $i = 0
while ($args[$i]) { while ($args[$i]) {
if ($args[$i] -eq "--") { if ($args[$i] -eq "---") {
$had_run_opts = $true $had_run_opts = $true
} }
else { else {
@ -109,62 +115,40 @@ function Run-Embark {
} }
if (-not ($EMBARK_DOCKER_RUN)) { if (-not ($EMBARK_DOCKER_RUN)) {
switch ($cmd[0]) { if ($cmd[0] -cin @("-V", "--version", "-h", "--help", "new", "demo", "build", "run", "blockchain",
"-V" {} "simulator", "test", "reset", "graph", "upload", "version")) {
"--version" {} $cmd = "embark " + $cmd
"-h" {}
"--help" {}
"new" {}
"demo" {}
"build" {}
"run" {}
"blockchain" {}
"simulator" {}
"test" {}
"reset" {}
"graph" {}
"upload" {}
"version" {
$cmd = "embark" + $cmd
break
}
} }
} }
else { else {
$i_flag = "" $i_flag = ""
if ($EMBARK_DOCKER_RUN_INTERACTIVE = $true) { if ($EMBARK_DOCKER_RUN_INTERACTIVE -eq $true) {
$i_flag = "i" $i_flag = "i"
} }
$run_script = Get-Content $EMBARK_DOCKER_RUN $run_script = Get-Content $EMBARK_DOCKER_RUN
"${cmd}" $run_script = $run_script -join "`n"
$run_script = " $run_script = "exec bash -${i_flag}s `$(tty) ${cmd} << 'RUN'
exec bash -${i_flag}s `$(tty) ${cmd} << 'RUN' __tty=`$1
__tty=`$1 shift
shift script=/tmp/run_embark_script
script=/tmp/run_embark_script cat << 'SCRIPT' > `$script
cat << 'SCRIPT' > `$script $run_script
$run_script SCRIPT
SCRIPT chmod +x `$script
chmod +x `$script exec `$script `$@ < `$__tty
exec `$script `$@ < `$__tty RUN"
RUN
"
$cmd = ("bash", "-${i_flag}c", "$run_script") $cmd = ("bash", "-${i_flag}c", "$run_script")
} }
$opts = @() $opts = $run_opts + "${EMBARK_DOCKER_IMAGE}:${EMBARK_DOCKER_TAG}" + $cmd
if ($cmd) { "docker run $opts"
$opts = $run_opts + "${EMBARK_DOCKER_IMAGE}:${EMBARK_DOCKER_TAG}" + $cmd
}
else {
$opts = $run_opts + "${EMBARK_DOCKER_IMAGE}:${EMBARK_DOCKER_TAG}"
}
docker run $opts return Cleanup
Cleanup
} }
Run-Embark
if ($MyInvocation.InvocationName.EndsWith($MyInvocation.MyCommand.Name)) {
Start-Embark @args
}