Skip to content
This repository has been archived by the owner on Jun 5, 2019. It is now read-only.

Commit

Permalink
Add step to change permissions of workspace files to current user.
Browse files Browse the repository at this point in the history
  • Loading branch information
Eric Fritz committed Jan 24, 2019
1 parent cde3633 commit f53df07
Showing 1 changed file with 56 additions and 2 deletions.
58 changes: 56 additions & 2 deletions runner/runner.go
Expand Up @@ -2,10 +2,13 @@ package runner


import ( import (
"context" "context"
"fmt"
"os" "os"
"os/signal" "os/signal"
"os/user"
"syscall" "syscall"


"github.com/efritz/ij/command"
"github.com/efritz/ij/config" "github.com/efritz/ij/config"
"github.com/efritz/ij/logging" "github.com/efritz/ij/logging"
"github.com/efritz/ij/paths" "github.com/efritz/ij/paths"
Expand All @@ -24,6 +27,8 @@ type Runner struct {
env []string env []string
} }


const FlashPermissionsImage = "alpine:3.8"

var shutdownSignals = []syscall.Signal{ var shutdownSignals = []syscall.Signal{
syscall.SIGINT, syscall.SIGINT,
syscall.SIGTERM, syscall.SIGTERM,
Expand Down Expand Up @@ -78,7 +83,10 @@ func (r *Runner) Run(plans []string) bool {
r.logger, r.logger,
) )


r.logger.Info(nil, "Importing files to workspace") r.logger.Info(
nil,
"Importing files to workspace",
)


importErr := transferer.Import( importErr := transferer.Import(
r.config.Import.Files, r.config.Import.Files,
Expand Down Expand Up @@ -117,11 +125,27 @@ func (r *Runner) Run(plans []string) bool {
} }
} }


r.logger.Info(
nil,
"Flashing workspace permissions",
)

if err := r.flashPermissions(); err != nil {
r.logger.Error(
nil,
"Failed to flash workspace permissions: %s",
err.Error(),
)
}

if failure { if failure {
return false return false
} }


r.logger.Info(nil, "Exporting files from workspace") r.logger.Info(
nil,
"Exporting files from workspace",
)


exportErr := transferer.Export( exportErr := transferer.Export(
r.config.Export.Files, r.config.Export.Files,
Expand Down Expand Up @@ -158,3 +182,33 @@ func (r *Runner) watchSignals() {
return return
} }
} }

func (r *Runner) flashPermissions() error {
user, err := user.Current()
if err != nil {
return err
}

builder := command.NewBuilder([]string{
"docker",
"run",
"--rm",
}, nil)

builder.AddArgs(FlashPermissionsImage)
builder.AddArgs("chown", fmt.Sprintf("%s:%s", user.Uid, user.Gid), "-R", ".")
builder.AddFlagValue("-w", "/workspace")
builder.AddFlagValue("-v", fmt.Sprintf("%s:/workspace", r.scratch.Workspace()))

args, _, err := builder.Build()
if err != nil {
return err
}

return command.NewRunner(r.logger).Run(
r.ctx,
args,
nil,
nil,
)
}

0 comments on commit f53df07

Please sign in to comment.