Coder Social home page Coder Social logo

beam's People

Contributors

camspiers avatar jamesliakqa avatar pieterv avatar stecman avatar stevie-mayhew avatar tractorcow avatar wilr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

beam's Issues

--scotty

There is no scotty option and it makes me sad.

Example usage:

beam up live --scotty

Example output:
???

Allow multiple paths and files to be specified with the --path option

Currently when specifying multiple paths, the last one is used:

$ beam up live -p themes -p mysite/code
...
[warn] TARGET: user@host:/home/user/public_html/mysite/code

It'd be nice to be able to specify more than one path (and possibly single files too):

$ beam up live -p themes -p mysite/code -p mysite/cache_config.yml
...
[warn] TARGET: user@host:/home/user/public_html
[warn] PATHS: themes
              mysite/code
              mysite/cache_config.yml

MAJOR: Beaming assets doesn't work

Using the path command on the assets directory fails.

Stevie-2:source stevie$ beam down live -p assets
[warn] You're about sync files between:
[warn] SOURCE: [email protected]:/home/mer/public_html/assets
[warn] TARGET: /Users/stevie/Sites/mer/source/assets
[warn] Determining list of files that will be modified...
[error] No changed files

Windows

Is it possible to user Beam on windows ? I can't find this information anywhere.

Password prompting with rsync

As mentioned by @shane-garelja in issue #38, it would be good if there were a nicer way to handle password prompts for rsync without having to deploy via a wrapper when trying to avoid the double prompt that is caused due to the rsync being run once for the file check and once for the actual file transfer.

Resolve issues from multi-server patch

Placeholder issue to ensure feedback from #60 doesn't get lost.

In #60 when doing a multi-server deployment, output logging is no longer streamed, but is consumed from each node before being merged and output. When operating in single-server mode, this isn't necessary, and streaming should be re-enabled.

Also need to update symfony dependencies (2.x is super outdated).

pass option to allow rsync to run as root on target

Using a default AWS EC2 instance and connecting with the ubuntu user I would like to be able to rsync as root so that permissions on target directories can be changed. I think in rsync itself I can pass --rsync-path "sudo rsync" and the ubuntu user would run as root. But can I pass this through the beam options in any way?

MINOR: en-nz wording of canceled

beam / src / Heyday / Component / Beam / Command / BeamCommand.php

"User canceled" => "User cancelled"

Same situation as the previous localisation issues?

FTP mkdir fails

Hi there, I'm attempting to use ftp with beam but keep getting the following error:
File: .beamlog[=>-----------------------------------------------------------------------------------------------------] 1/60 files[Error] Failed to mkdir '/beam/.':
[Error] 550 Can't create directory: File exists

I've confirmed that the file doesn't exist prior to running 'beam up --full' and that after this command runs the /beam/ folder is created. I'm not sure how to debug this from here. It appears to create the file and then thinks the file already exists.

Command to view the status of a server (beamlog)

We need an easy way to find out what code is on any given server and where that code is in the repository now. Beam already saves information on servers about the last beamed commit, but there's currently no way to retrieve or parse this information using beam. The solution to get this information as is would be:

$ ssh example.com cat path/to/webroot/.beamlog
Deployer: stevie
Ref: remotes/origin/master
commit c4bbafdc440d538ffa669f9e873ff9708e074b7e
Author: Dr. Stevie Mayhew <[email protected]>
Date:   Thu Sep 5 13:00:46 2013 +1200

    Enhanced comments with memes

$ git branch -a --contains c4bbafdc4
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

Solution

What beam needs is some sort of status command to take full advantage of the .beamlog file and the things it already knows (eg. exactly where your code is). Said command might work something like this:

$ beam status s1
Deployer: stevie
Ref: remotes/origin/master
commit c4bbafdc440d538ffa669f9e873ff9708e074b7e
Author: Dr. Stevie Mayhew <[email protected]>
Date:   Thu Sep 5 13:00:46 2013 +1200

   Rewrote all business logic in BASH

This commit is appears in:
    master
    remotes/origin/master

Sub directory beam, not working.

When running beam from inside the znz theme directory i get the following error.

pieter: /Users/pieter/Sites/znz/source/themes/znz/js/lfn/src [git:feature/gith-phase-2+] 
$ beam up s1
warn:   Starting...
error:  Config file deploy.json not found!! `Beam` must be run inside project source directory or deeper

Allow for "port" option in server settings

Server connection is attempted using port 22. Many servers are setup to use a non-standard port for ssh connections.

Perhaps I've overlooked something, but I don't currently see a way to specify an alternate port to use for the connection.

pull command ignoring path parameter

Used the following command deploy s1 pull p=/assets quick.

The command pulled all files from the server and not just the files in the assets directory.

Define private key explicitly

I'm not sure if there is way currently to define location for private key used for server authentication. Can you please confirm?

Missing line feed after progress bar

Beam needs to output a line feed after the transfer progress bar, before emitting "Running target post-deployment commands". I'd do this myself, but haven't learnt the beam internals yet to figure out the best place to add it.

Beam does not work with PHP8 CLI

When running PHP 8.0.8 in the CLI beam will no deploy runs into a error. Downgrading it to PHP7 runs it.

Fatal error: Uncaught Error: Class "Symfony\Component\Debug\Exception\FatalThrowableError" not found in phar:///usr/local/bin/beam/vendor/symfony/console/Application.php:2
Stack trace:
#0 phar:///usr/local/bin/beam/bin/beam(2): Symfony\Component\Console\Application->run()
#1 /usr/local/bin/beam(4): require('phar:///usr/loc...')
#2 {main}
  thrown in phar:///usr/local/bin/beam/vendor/symfony/console/Application.php on line 2

Installer fails with 404

Installation fails with multiple instances of PHP Warning: file_get_contents(http://beam.heyday.net.nz/beam.phar): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found followed by The download failed repeatedly, aborting.

Consistent use of hyphens in options

Some options hyphenate:
beam up live --command-prompt

But most don't:
beam up live --workingcopy

It would be nice if this was consistent.

Looking at an example git seems to hyphenate consistently...

$ git -h
Unknown option: -h
usage: git [--version] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           [-c name=value] [--help]
           <command> [<args>]

Include support for prompting user for a password?

I get ansy when I have to hardcode passwords. It would be great if a user can be prompted for the password through DialogHelper::askHiddenResponse(). Haven't had too much of a stab at it yet. Any reasoning why it wasn't included initially?

Maintenance mode support

I've started doing some thinking about handling for maintenance mode. I don't think that the way we do maintenance mode should be integrated into beam as it's too specific to our way of doing things. Here's some thoughts anyway:

  • Our current maintenance mode folders include a script that can be run via SSH to toggle maintenance mode - we can simply call this directly prior to a deployment. If a site doesn't have a maintenance folder then we grab one. This should be added to the boilerplate.
  • This basically leaves the issue of how to exclude certain files and folders when deploying to a site in maintenance mode:
    • I think we'd need to exclude the maintenance directory by default. If someone wants to deploy a change to a file in this directory then they do this by setting the path option to /maintenance/.
    • We could add the ability to specify additional excludes e.g. --exclude=".htaccess"
      • this is not very user friendly though
    • Perhaps we add the option to set certain paths and files that are excluded during a deployment to live to the deploy.json file - although, these would always be the same. They used to be specified in the patterns file - perhaps they are added to exclude-patterns.json?

Any thoughts anyone?

FTP deployment provider uses error suppression instead of exceptions

I had a problem that appeared to be a bug in a method of the FTP deployment provider, but was actually just missing data caused by a few error-suppressed calls to ftp_* functions. Ideally this should be changed to use exceptions.

!@ftp_login( // Suppress warning
    $this->connection,
    $this->getConfig('user'),
    $this->getConfig('password')
)

...

@ftp_fget(
    $this->getConnection(),
    $handle,
    $this->getTargetFilePath($path),
    FTP_BINARY
)

Allow passing of rsync parameters

Would be great if rsync parameters could be passed on a per server basis, eg

"servers": {
    "test": {
        "user": "user",
        "host": "some.hostname",
        "webroot": "subdomains/staging",
        "rsync-params": "--no-perms"
    }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.