mirror of https://github.com/tmux-plugins/tpm
parent
2e8f2aa0cd
commit
45cd3d40fa
@ -0,0 +1 @@ |
||||
**/.vagrant/ |
@ -0,0 +1,29 @@ |
||||
# Tmux |
||||
# |
||||
# VERSION 0.0.1 |
||||
|
||||
FROM ubuntu:trusty |
||||
|
||||
MAINTAINER Bruno Sutic "bruno.sutic@gmail.com" |
||||
|
||||
RUN apt-get update |
||||
|
||||
RUN apt-get install -y git-core |
||||
RUN apt-get install -y expect |
||||
RUN apt-get install -y python-software-properties software-properties-common |
||||
|
||||
# sshd |
||||
RUN apt-get install -y openssh-server |
||||
RUN mkdir /var/run/sshd |
||||
|
||||
# Enabling passwordless ssh login with `docker_ssh.key` private key. |
||||
RUN mkdir -p /root/.ssh/ |
||||
RUN echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVmzBG5v7cO9IScGLIzlhGlHNFhXzy87VfaPzru7qnIIdQ1e9FEKvtqEws8hVixnCUdviwX5lvcMk4Ef4Tbrmj3dyF0zFtYbjiTSyl/XQlF68DQlc2sTAdHy96wJHvh7ky511tKJzzyWwSqeef4WjeVK28TqcGnq1up0S7saFO0dJh6OfDAg2cDmhyweR3VgT0vZJyrDV7hte95MBCdK+Gp7fdCyEZcWm3S1DBFaeBqHzzt/Y/njAVKbYL9TIVPum8iMg0rMiLi9ShfP+dT5Xud5Oa3dcN2OWhiDfJw5pfhFJWd44cJ/uGRwQpvNs/PNKsYABhgLlTMUH4iawhu1Xb' > /root/.ssh/authorized_keys |
||||
|
||||
# install latest Tmux 1.9a |
||||
RUN add-apt-repository ppa:pi-rho/dev |
||||
RUN apt-get update |
||||
RUN apt-get install -y tmux=1.9a-1~ppa1~t |
||||
|
||||
EXPOSE 22 |
||||
CMD /usr/sbin/sshd -D |
@ -0,0 +1,16 @@ |
||||
Vagrant.require_version '>= 1.6.0' |
||||
|
||||
VAGRANTFILE_API_VERSION = '2' |
||||
|
||||
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| |
||||
config.vm.provider 'docker' do |d| |
||||
d.build_dir = '.' |
||||
d.has_ssh = true |
||||
end |
||||
|
||||
# tpm is synced with `/root/tmux_plugin_manager` in vagrant |
||||
config.vm.synced_folder '../', '/root/tmux_plugin_manager' |
||||
|
||||
config.ssh.username = 'root' |
||||
config.ssh.private_key_path = 'docker_ssh.key' |
||||
end |
@ -0,0 +1,27 @@ |
||||
-----BEGIN RSA PRIVATE KEY----- |
||||
MIIEpQIBAAKCAQEA1ZswRub+3DvSEnBiyM5YRpRzRYV88vO1X2j867u6pyCHUNXv |
||||
RRCr7ahMLPIVYsZwlHb4sF+Zb3DJOBH+E265o93chdMxbWG44k0spf10JRevA0JX |
||||
NrEwHR8vesCR74e5MuddbSic88lsEqnnn+Fo3lStvE6nBp6tbqdEu7GhTtHSYejn |
||||
wwINnA5ocsHkd1YE9L2Scqw1e4bXveTAQnSvhqe33QshGXFpt0tQwRWngah887f2 |
||||
P54wFSm2C/UyFT7pvIjINKzIi4vUoXz/nU+V7neTmt3XDdjloYg3ycOaX4RSVneO |
||||
HCf7hkcEKbzbPzzSrGAAYYC5UzFB+ImsIbtV2wIDAQABAoIBAQCjROxgtX2Gft7y |
||||
Ix8Ol9IXmK6HLCI2XZt7ovb3hFWGGzHy0qMBql2P2Tzoed1o038Hq+woe9n+uTnE |
||||
dtQ6rD6PByzgyW2VSsWTjCOdeJ5HH9Qw7ItXDZZWHBkhfYHOkXI4e2oI3qshGAtY |
||||
NLALn7KVhioJriCyyaSM2KOLx5khcY+EJ1inQfwQJKqPGsdKc72liz07T8ifRj+m |
||||
NLKtwrxlK3IXYfIdgLp/1pCKdrC80DhprMsD4xvNgq4pCR9jd4FoqM9t/Up5ppTm |
||||
+p6A/bDwdIPh6cFFeyMP+G3+bTlW1Gg7RLoNCc6qh53WWVgEOQqdLHcQ8Ge4RLmb |
||||
wLUmnRuRAoGBAPfXYfjpPZi8rPIQpux13Bs7xaS1/Fa9WqrEfrPptFdUVHeFCGY8 |
||||
qOUVewPviHdbs0nB71Ynk9/e96agFYijQdqTQzVnpYI4i8GiGk5gPMiB2UYeJ/HZ |
||||
mIB3jtWyf6Z/GO0hJ1a6mX0XD3zJGNqFaiwqaYgdO1Fwh9gcH3O2lHyjAoGBANyj |
||||
TGDBYHpxPu6uKcGreLd0SgO61PEj7aOSNfrBB2PK83A+zjZCFZRIWqjfrkxGG6+a |
||||
2WuHbEHuCGvu2V5juHYxbAD/38iV/lQl/2xyvN1eR/baE3US06qn6idxjnmeNZDy |
||||
DelAx1RGuEvLX1TNAzDTxBwYyzH3W2RpKAUAD11pAoGAN38YJhd8Pn5JL68A4cQG |
||||
dGau/BHwHjAqZEC5qmmzgzaT72tvlQ0SOLHVqOzzHt7+x45QnHciSqfvxnTkPYNp |
||||
FJuTGhtKWV12FfbJczFjivZgg63u/d3eoy2iY0GkCdE98KNS3r3L7tHCGwwgr5Xe |
||||
T2Nz3BHHnZXYJVEuzcddeocCgYEAnhDjPAHtw2p0Inxlb9kPb6aBC/ECcwtBSUkL |
||||
IOy/BZA1HPnxs89eNFAtmwQ8k2o6lXDDSJTJSuZj5CdGVKfuU8aOUJz/Tm2eudxL |
||||
A/+jLJhJyCBthhcJyx3m04E4CAr+5ytyKeP9qXPMvoghcNg66/UabuKYV+CU+feX |
||||
8xUa7NkCgYEAlX8HGvWMmiG+ZRFB//3Loy87bBxGlN0pUtCEScabZxdB2HkI9Vp7 |
||||
Yr67QIZ3y7T88Mhkwam54JCjiV+3TZbSyRMOjkqf7UhTCZC6hHNqdUnlpv4bJWeW |
||||
i5Eun8ltYxBnemNc2QGxA4r+KCspi+pRvWNGzL3PFVBGXiLsmOMul78= |
||||
-----END RSA PRIVATE KEY----- |
@ -0,0 +1,23 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
||||
|
||||
run_vagrant() { |
||||
vagrant up --provider=docker |
||||
} |
||||
|
||||
stop_vagrant() { |
||||
vagrant destroy -f |
||||
} |
||||
|
||||
run_tests() { |
||||
# actually this test file should be run inside vagrant |
||||
$CURRENT_DIR/tests/test_plugin_installation.sh |
||||
} |
||||
|
||||
main() { |
||||
run_vagrant |
||||
run_tests |
||||
stop_vagrant |
||||
} |
||||
main |
@ -0,0 +1,46 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
set_tmux_conf_helper() { |
||||
> ~/.tmux.conf # empty filename |
||||
while read -r line; do |
||||
echo $line >> ~/.tmux.conf |
||||
done |
||||
} |
||||
|
||||
create_test_plugin_helper() { |
||||
local plugin_path="$HOME/.tmux/plugins/tmux_test_plugin/" |
||||
rm -rf $plugin_path |
||||
mkdir -p $plugin_path |
||||
|
||||
while read -r line; do |
||||
echo $line >> "$plugin_path/test_plugin.tmux" |
||||
done |
||||
chmod +x "$plugin_path/test_plugin.tmux" |
||||
} |
||||
|
||||
teardown_helper() { |
||||
rm ~/.tmux.conf |
||||
rm -rf ~/.tmux/ |
||||
tmux kill-server >/dev/null 2>&1 |
||||
} |
||||
|
||||
check_dir_exists_helper() { |
||||
local dir_path=$1 |
||||
if [ -d "$dir_path" ]; then |
||||
return 0 |
||||
else |
||||
return 1 |
||||
fi |
||||
} |
||||
|
||||
exit_value_helper() { |
||||
if $FAIL; then |
||||
echo |
||||
echo "Test failed" |
||||
exit 1 |
||||
else |
||||
echo |
||||
echo "Test finished successfully" |
||||
exit 0 |
||||
fi |
||||
} |
@ -0,0 +1,30 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
||||
|
||||
source $CURRENT_DIR/helpers.sh |
||||
|
||||
FAIL=false |
||||
|
||||
test_plugin_installation() { |
||||
set_tmux_conf_helper <<- HERE |
||||
set -g @tpm_plugins "bruno-/tmux_example_plugin" |
||||
run-shell '~/tmux_plugin_manager/tpm' |
||||
HERE |
||||
|
||||
# opens tmux and test it with `expect` |
||||
$CURRENT_DIR/expect_successful_plugin_download || |
||||
(echo "Tmux plugin installation fails" >&2; FAIL=true) |
||||
|
||||
# check plugin dir exists after download |
||||
check_dir_exists_helper "/root/.tmux/plugins/tmux_example_plugin/" || |
||||
(echo "Plugin download fails" >&2; FAIL=true) |
||||
|
||||
teardown_helper |
||||
} |
||||
|
||||
main() { |
||||
test_plugin_installation |
||||
exit_value_helper |
||||
} |
||||
main |
@ -0,0 +1,36 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
||||
|
||||
source $CURRENT_DIR/helpers.sh |
||||
|
||||
FAIL=false |
||||
|
||||
check_binding_defined() { |
||||
local binding=$1 |
||||
tmux list-keys | grep -q "$binding" |
||||
} |
||||
|
||||
test_plugin_sourcing() { |
||||
set_tmux_conf_helper <<- HERE |
||||
set -g @tpm_plugins "doesnt_matter/tmux_test_plugin" |
||||
# change this |
||||
run-shell '~/tmux_plugin_manager/tpm' |
||||
HERE |
||||
|
||||
create_test_plugin_helper <<- HERE |
||||
tmux bind-key R run-shell foo_command |
||||
HERE |
||||
|
||||
tmux new-session -d # tmux starts detached |
||||
check_binding_defined 'R run-shell foo_command' || |
||||
(echo "Plugin sourcing fails" >&2; FAIL=true) |
||||
|
||||
teardown_helper |
||||
} |
||||
|
||||
main() { |
||||
test_plugin_sourcing |
||||
exit_value_helper |
||||
} |
||||
main |
Loading…
Reference in new issue