Commit Graph
35 Commits
Author SHA1 Message Date
Adrien Delorme f555e7a9f2 allow a provisioner to timeout
* I had to contextualise Communicator.Start and RemoteCmd.StartWithUi
NOTE: Communicator.Start starts a RemoteCmd but RemoteCmd.StartWithUi will run the cmd and wait for a return, so I renamed StartWithUi to RunWithUi so that the intent is clearer.
Ideally in the future RunWithUi will be named back to StartWithUi and the exit status or wait funcs of the command will allow to wait for a return. If you do so please read carrefully https://golang.org/pkg/os/exec/#Cmd.Stdout to avoid a deadlock
* cmd.ExitStatus to cmd.ExitStatus() is now blocking to avoid race conditions
* also had to simplify StartWithUi
2019-04-08 20:09:21 +02:00
Adrien DelormeandMatthew Patton b7222d1f56 Add tmp package that offers Dir & File funcs
this regroups the calls of tmp func calls into one package.
the tmp pkg allows to store tmp files under a common directory for easier managment

Squashed commit of the following:
commit 74b674c015
Merge: fc94b5714 66001525d
Author: Matthew Patton <[email protected]>
Date:   Fri Nov 2 02:02:38 2018 -0400

    Merge branch 'remove_TMPDIR_docs' of github.com:tb3088/packer into remove_TMPDIR_docs

commit fc94b57142
Author: Matthew Patton <[email protected]>
Date:   Fri Nov 2 01:42:38 2018 -0400

    update tests to honor configured temporary directory

commit 5a562359f4
Author: Matthew Patton <[email protected]>
Date:   Thu Nov 1 18:52:38 2018 -0400

    sync straggler to refactor. implement tests at packer/configfile instead of buried in docker.

commit 9d5a4a0935
Author: Matthew Patton <[email protected]>
Date:   Thu Nov 1 15:39:46 2018 -0400

    insert URL to GoLang API for os.TempDir()

commit fbae4c2e05
Author: Matthew Patton <[email protected]>
Date:   Thu Nov 1 07:41:29 2018 -0400

    revise documentation to match code

commit 3590fae8bd
Author: Matthew Patton <[email protected]>
Date:   Thu Nov 1 07:21:59 2018 -0400

    refacter config_file. replace all hard-coded os.TempDir with wrapper

commit d5c5306a97
Author: Matthew Patton <[email protected]>
Date:   Wed Oct 31 20:11:36 2018 -0400

    close massive file overwrite hole with TempDir

commit 0a72297da8
Author: Matthew Patton <[email protected]>
Date:   Wed Oct 31 01:06:00 2018 -0400

    adjust var declaration scope

commit 20f68228b6
Author: Matthew Patton <[email protected]>
Date:   Wed Oct 31 00:54:35 2018 -0400

    use mktemp() equivalent to create temporary directory

commit c73ebe3d83
Author: Matthew Patton <[email protected]>
Date:   Tue Oct 30 20:40:58 2018 -0400

    remove extraneous variable declaration, fix FOR loop

commit 63549b8bd7
Author: Matthew Patton <[email protected]>
Date:   Tue Oct 30 19:30:44 2018 -0400

    match styistic convension with rest of docs

commit 9761010749
Author: Matthew Patton <[email protected]>
Date:   Tue Oct 30 19:08:39 2018 -0400

    revert dangling config file change

commit 95159afbc0
Author: Matthew Patton <[email protected]>
Date:   Fri Dec 29 23:53:43 2017 -0500

    replace invalid TMPDIR variable wth PACKER_TMP_DIR.
    update ConfigTmpDir() to try common temporary paths first and
    only write to configDir() as a last resort.

commit 66001525d7
Author: Matthew Patton <[email protected]>
Date:   Fri Nov 2 01:42:38 2018 -0400

    update tests to honor configured temporary directory

commit e9b6adefea
Author: Matthew Patton <[email protected]>
Date:   Thu Nov 1 18:52:38 2018 -0400

    sync straggler to refactor. implement tests at packer/configfile instead of buried in docker.

commit 852113ed07
Author: Matthew Patton <[email protected]>
Date:   Thu Nov 1 15:39:46 2018 -0400

    insert URL to GoLang API for os.TempDir()

commit 54add38d1d
Author: Matthew Patton <[email protected]>
Date:   Thu Nov 1 07:41:29 2018 -0400

    revise documentation to match code

commit 6b5b8f6d4e
Author: Matthew Patton <[email protected]>
Date:   Thu Nov 1 07:21:59 2018 -0400

    refacter config_file. replace all hard-coded os.TempDir with wrapper

commit c22092c601
Author: Matthew Patton <[email protected]>
Date:   Wed Oct 31 20:11:36 2018 -0400

    close massive file overwrite hole with TempDir

commit 7a73045091
Author: Matthew Patton <[email protected]>
Date:   Wed Oct 31 01:06:00 2018 -0400

    adjust var declaration scope

commit 0f2933adb6
Author: Matthew Patton <[email protected]>
Date:   Wed Oct 31 00:54:35 2018 -0400

    use mktemp() equivalent to create temporary directory

commit d74839ede0
Author: Matthew Patton <[email protected]>
Date:   Tue Oct 30 20:40:58 2018 -0400

    remove extraneous variable declaration, fix FOR loop

commit eb65416619
Author: Matthew Patton <[email protected]>
Date:   Tue Oct 30 19:30:44 2018 -0400

    match styistic convension with rest of docs

commit acaa2b31ed
Author: Matthew Patton <[email protected]>
Date:   Tue Oct 30 19:08:39 2018 -0400

    revert dangling config file change

commit e573fde668
Author: Matthew Patton <[email protected]>
Date:   Fri Dec 29 23:53:43 2017 -0500

    replace invalid TMPDIR variable wth PACKER_TMP_DIR.
    update ConfigTmpDir() to try common temporary paths first and
    only write to configDir() as a last resort.

commit 39a9874afc
Merge: 8a413cfe8 3315812c2
Author: Matthew Patton <[email protected]>
Date:   Tue Oct 30 18:19:26 2018 -0400

    Merge branch 'master' of https://github.com/hashicorp/packer into prestine

commit 8a413cfe83
Merge: e07491de5 4e14710a6
Author: Matthew Patton <[email protected]>
Date:   Mon Oct 1 20:18:10 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit e07491de59
Merge: 42610a35d a1fa35dff
Author: Matthew Patton <[email protected]>
Date:   Tue Aug 21 13:26:19 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit 42610a35d5
Merge: 5298142da 0d63cf7bc
Author: Matthew Patton <[email protected]>
Date:   Tue Jun 19 22:45:05 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit 5298142da6
Merge: 7bb110bc7 9d9736552
Author: Matthew Patton <[email protected]>
Date:   Mon Jun 11 15:10:09 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit 7bb110bc74
Merge: a61c869ca 6189d66e7
Author: Matthew Patton <[email protected]>
Date:   Wed May 9 23:41:22 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit a61c869ca7
Merge: 098101dd9 4be5f072c
Author: Matthew Patton <[email protected]>
Date:   Fri May 4 10:13:04 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit 098101dd99
Merge: fefaf0fa6 554b2b4a5
Author: Matthew Patton <[email protected]>
Date:   Tue May 1 20:52:30 2018 -0400

    Merge branch 'EOL-handling' into prestine

Co-Authored-By: Matthew Patton <[email protected]>
2018-12-12 16:35:57 +01:00
Megan Marsh e4f6b6f720 fix chroot communicator to properly escape quotes 2018-08-28 09:16:43 -07:00
Matthew Hooker 81522dced0 move packer to hashicorp 2017-04-04 13:39:01 -07:00
Matthew Hooker cc11ec3566 check for a couple errors 2017-03-28 20:36:21 -07:00
Vasiliy Tolstov feee19e4ed file provisioner improvements
* allow specify source/destination as dir
* allow specify many files as source

Signed-off-by: Vasiliy Tolstov <[email protected]>
2016-02-12 11:48:28 -08:00
Mitchell Hashimoto 75395af12d Merge branch '1064-fix-upload-file-permissions' of github.com:rasa/packer into rasa-1064-fix-upload-file-permissions
Conflicts:
	builder/parallels/common/step_upload_parallels_tools.go
	builder/vmware/common/step_upload_tools.go
	provisioner/chef-client/provisioner.go
	provisioner/chef-solo/provisioner.go
2014-09-08 13:20:46 -07:00
Brandon Turner b2258dc4e9 Fix chroot builder to work with chef-solo
According to be5adb92b5, the UploadDir
method supports two ways of copying depending on whether a trailing
slash is used:
    src = "dir"  -> dest/dir
    src = "dir/" -> dest

On BSD-based systems (such as OSX, FreeBSD, etc.) the `cp -R` command
handles these two cases automatically.  However, Linux treats "src/" and
"src" the same.

To support the trailing slash syntax portably, we can use:
    src = "dir"   -> dest/dir
    src = "dir/." -> dest

This works on BSD and Linux.  It is better than using wildcards as it
grabs hidden files as well.

This fixes #1196 that prevents the chef-solo provisioner from working
with the chroot builder.
2014-05-27 19:02:29 -05:00
Ross Smith II d92179847d provisioner/file: set file/directory permissions
fixes #1064
2014-05-09 21:03:35 -07:00
Jaime Soriano Pastor 32bb745734 Force LANG=C before appending rest of environment, as only first occurence is used 2014-05-08 17:11:19 +02:00
Nathan Hartwell be5adb92b5 Appending wildcard to src causes problems
It appears that the desired effect was to support
    src = "dir" -> dest/dir
    src = "dir/" -> dest

but cp -R already handles this, provided the trailing slash does not
get consumed by the shell.

The wildcard causes problems when multiple files match the
shell glob, e.g.

UploadDir("/tmp", "./salt*", [])

where my working dir contains
 - salt
 - salt-foo

will error.
2014-05-02 11:18:56 -05:00
Mitchell Hashimoto 3adbd09639 builder/amazon/chroot: fix compile error 2013-11-08 11:19:10 -08:00
Mitchell Hashimoto 3780b57a1f builder/amazon/chroot: allow no such file errors on upload [GH-588] 2013-11-08 10:53:54 -08:00
Mitchell Hashimoto 17f1ee3e98 builder/amazon/chroot: quote commands and pass through a shell [GH-581] 2013-11-08 10:22:56 -08:00
Matthew Hooker 5c41eccfd5 Fix the way we run commands in chroot.
* Single quotes around chroot command cause it to fail.
* The chroot command also gets passed through the CommandWrapper template, so having sudo would clash with however the user wants to run it.
* Fix spelling mistake.
2013-10-01 09:35:55 +00:00
Mitchell Hashimoto 38d3411f80 builder/amazon/chroot: remove unused comment 2013-09-30 09:35:58 -07:00
Mitchell Hashimoto b554a0dd86 builder/amazon/chroot: CommandWrapper
/cc @mwhooker - I changed the interface up a bit to return an error,
since things should return errors in Go (the ui.Error bit was kind of
ghetto because it had no way to bubble that error up except through the
UI).

Using this, I made it so that the communicator uses both a
CommandWrapper and ShellCommand with chroot so that the chroot commannd
is also wrapped (it wasn't before).

I think the functionality of all this is the same but I'd love if you
could look it over and make sure.
2013-09-30 09:33:57 -07:00
Matthew Hooker 5f19648268 comment, formatting. 2013-09-29 08:04:57 +00:00
Matthew Hooker a15f629f4f WIP copying files. 2013-09-28 01:10:33 +00:00
Matthew Hooker 831d5caa50 move wrapper definitions around. 2013-09-27 22:08:15 +00:00
Matthew Hooker 39c3051a95 building but there's an exec error. 2013-09-27 20:47:44 +00:00
Matthew Hooker ac496a63dc replace command config with wrapper command. 2013-09-27 10:54:53 +00:00
Matthew Hooker cebbcc51a6 fix chroot Upload command. 2013-09-27 02:11:28 +00:00
Matthew Hooker 23a331fc00 bugfix. 2013-09-26 01:35:29 -07:00
Matthew Hooker 7740c8fed5 using blocking cp method. 2013-09-26 01:32:53 -07:00
Matthew Hooker 5e9ff92ff3 Revert "notes/reorg."
This reverts commit 73c5aec24d.

Conflicts:
	builder/amazon/chroot/step_copy_files.go
2013-09-26 01:16:51 -07:00
Matthew Hooker ce3725efec wip 2013-09-26 01:08:06 -07:00
Matthew Hooker 7fa238503b wip 2013-09-26 00:58:25 -07:00
Matthew Hooker dd356d33d8 notes/reorg. 2013-09-26 00:31:07 -07:00
Matthew Hooker 5086ff1a4e pass chroot command to /bin/sh
this allows us to specify an arbitrary chroot command, i.e. for sudo
2013-09-25 03:20:22 -07:00
Matthew Hooker 1befba24ed Allow user to override chroot command. 2013-09-17 05:58:16 -07:00
Mitchell Hashimoto d857c9ccbb builder/amazon/chroot: implement UploadDir for chroot communicator 2013-08-25 20:30:56 -07:00
Mitchell Hashimoto be5fa9ecdb builder/amazon/chroot: log the exit code for the chroot communicator 2013-07-30 17:23:37 -07:00
Mitchell Hashimoto 7ae0f3bafe builder/amazon/chroot: upload should os.Create, not os.Open 2013-07-30 16:07:50 -07:00
Mitchell Hashimoto 8d3cf7aa59 builder/amazon/chroot: provision within the chroot 2013-07-30 16:07:50 -07:00