run-redmine 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/bin/redmine +3 -0
- data/docker/Dockerfile +73 -0
- data/docker/database.yml +7 -0
- data/docker/pg/pg_hba.conf +15 -0
- data/docker/run.sh +11 -0
- data/lib/redmine.rb +7 -0
- data/lib/redmine/banner.rb +11 -0
- data/lib/redmine/cli/arguments.rb +9 -0
- data/lib/redmine/cli/command_factory.rb +28 -0
- data/lib/redmine/cli/parser.rb +84 -0
- data/lib/redmine/cli/runner.rb +44 -0
- data/lib/redmine/commands/docker/build.rb +15 -0
- data/lib/redmine/commands/docker/copy_config.rb +19 -0
- data/lib/redmine/commands/docker/create.rb +18 -0
- data/lib/redmine/commands/docker/create_volume.rb +17 -0
- data/lib/redmine/commands/docker/start.rb +15 -0
- data/lib/redmine/commands/list.rb +42 -0
- data/lib/redmine/commands/list_printer.rb +24 -0
- data/lib/redmine/commands/pull_plugins.rb +31 -0
- data/lib/redmine/commands/shell.rb +9 -0
- data/lib/redmine/commands/start.rb +63 -0
- data/lib/redmine/config.rb +43 -0
- data/lib/redmine/utils/plugin_installer.rb +49 -0
- metadata +67 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1e5bafcf93d6a08ba073f415c92d301221055763039061bba94e727885c84bcc
|
4
|
+
data.tar.gz: 563893a52c53338d930e44283a4a90a52f0d2841158d2e6cf8e6a209032d8930
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bde20117075026555bf0bdf1d6455b82c2fee1ba85ddde144b793d2afe7137ad2e2874f9b1ae21816070290a9ca36e9766671cb881e610b63d09c521622e2b7c
|
7
|
+
data.tar.gz: dd6ebb52211082fa02ac7f3107cdd96ea3fec4ec2ffc4436d8e2c70a84d48039797e2aa912d42b4c1ed5d7f96aa28da082a4fa358c95c07f264919f7bdaa93b7
|
data/bin/redmine
ADDED
data/docker/Dockerfile
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
FROM ubuntu:16.04
|
2
|
+
MAINTAINER Andrei.Malyshev@kodep.ru
|
3
|
+
ENV PATH ~/.rbenv/shims:~/.rbenv/bin:$PATH
|
4
|
+
ENV MAKEOPTS "-j8"
|
5
|
+
ENV RUBY_BUILD_CACHE_PATH yes
|
6
|
+
|
7
|
+
RUN echo 'LANG="ru_RU.UTF-8"' >> /etc/default/locale
|
8
|
+
RUN echo '1.01'
|
9
|
+
RUN apt-get update && apt-get -y install locales && locale-gen ru_RU && locale-gen ru_RU.UTF-8
|
10
|
+
|
11
|
+
RUN apt-get install -y \
|
12
|
+
git-core \
|
13
|
+
autoconf \
|
14
|
+
bash \
|
15
|
+
bison \
|
16
|
+
bzip2 \
|
17
|
+
ca-certificates \
|
18
|
+
coreutils \
|
19
|
+
curl \
|
20
|
+
gcc \
|
21
|
+
git \
|
22
|
+
libc-dev \
|
23
|
+
libffi-dev \
|
24
|
+
libxml2-dev \
|
25
|
+
libxslt-dev \
|
26
|
+
libssl-dev \
|
27
|
+
libreadline-dev \
|
28
|
+
make \
|
29
|
+
subversion \
|
30
|
+
libmagickwand-dev \
|
31
|
+
openssh-client \
|
32
|
+
postgresql \
|
33
|
+
libpq-dev \
|
34
|
+
sudo \
|
35
|
+
software-properties-common \
|
36
|
+
graphicsmagick-libmagick-dev-compat \
|
37
|
+
imagemagick \
|
38
|
+
libsqlite3-dev \
|
39
|
+
tree \
|
40
|
+
screen
|
41
|
+
RUN git clone --depth 1 git://github.com/rbenv/rbenv.git ~/.rbenv \
|
42
|
+
&& git clone --depth 1 git://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
|
43
|
+
RUN mv /bin/sh /bin/sh.bk && ln /bin/bash /bin/sh
|
44
|
+
|
45
|
+
ARG ruby_version=2.5.1
|
46
|
+
ENV RUBY_VERSION=$ruby_version
|
47
|
+
|
48
|
+
RUN rbenv install $RUBY_VERSION
|
49
|
+
RUN mkdir -p /var/www
|
50
|
+
WORKDIR /var/www/
|
51
|
+
RUN git clone https://github.com/redmine/redmine.git
|
52
|
+
WORKDIR /var/www/redmine
|
53
|
+
|
54
|
+
ARG redmine_version=3.4.4
|
55
|
+
ENV REDMINE_VERSION=$redmine_version
|
56
|
+
|
57
|
+
RUN git checkout $REDMINE_VERSION
|
58
|
+
RUN rbenv local ${RUBY_VERSION}
|
59
|
+
ADD ./database.yml /var/www/redmine/config
|
60
|
+
RUN gem install bundler && bundle --without=test development --retry=5
|
61
|
+
|
62
|
+
ENV RAILS_ENV=development
|
63
|
+
ADD ./pg/pg_hba.conf /etc/postgresql/9.5/main
|
64
|
+
RUN rake generate_secret_token
|
65
|
+
ADD ./run.sh /root/run.sh
|
66
|
+
RUN chmod +x /root/run.sh
|
67
|
+
|
68
|
+
RUN gem install redmine && rbenv rehash
|
69
|
+
|
70
|
+
ARG port=3000
|
71
|
+
ENV PORT=$port
|
72
|
+
EXPOSE $port
|
73
|
+
ENTRYPOINT /root/run.sh
|
data/docker/database.yml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
local all postgres trust
|
2
|
+
|
3
|
+
# TYPE DATABASE USER ADDRESS METHOD
|
4
|
+
|
5
|
+
# "local" is for Unix domain socket connections only
|
6
|
+
local all all trust
|
7
|
+
# IPv4 local connections:
|
8
|
+
host all all 127.0.0.1/32 trust
|
9
|
+
# IPv6 local connections:
|
10
|
+
host all all ::1/128 md5
|
11
|
+
# Allow replication connections from localhost, by a user with the
|
12
|
+
# replication privilege.
|
13
|
+
#local replication postgres peer
|
14
|
+
#host replication postgres 127.0.0.1/32 md5
|
15
|
+
#host replication postgres ::1/128 md5
|
data/docker/run.sh
ADDED
data/lib/redmine.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../commands/start'
|
4
|
+
require_relative '../commands/pull_plugins'
|
5
|
+
|
6
|
+
module Redmine
|
7
|
+
module CLI
|
8
|
+
class CommandFactory
|
9
|
+
def initialize(args, config)
|
10
|
+
@arguments = args
|
11
|
+
@config = config
|
12
|
+
end
|
13
|
+
|
14
|
+
def command
|
15
|
+
case @arguments.command
|
16
|
+
when Redmine::CLI::Parser::COMMAND_START
|
17
|
+
Redmine::Commands::Start.new(@arguments, @config)
|
18
|
+
when Redmine::CLI::Parser::COMMAND_LIST
|
19
|
+
Redmine::Commands::List.new
|
20
|
+
when Redmine::CLI::Parser::COMMAND_INSTALL_PLUGINS
|
21
|
+
Redmine::Commands::PullPlugins.new(@arguments)
|
22
|
+
else
|
23
|
+
raise Redmine::CLI::UnclearCommand, @arguments.command
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'optparse'
|
4
|
+
|
5
|
+
require_relative './arguments'
|
6
|
+
|
7
|
+
require_relative './../commands/start'
|
8
|
+
require_relative './../commands/list'
|
9
|
+
|
10
|
+
module Redmine
|
11
|
+
module CLI
|
12
|
+
class UnclearCommand < StandardError; end
|
13
|
+
class Parser
|
14
|
+
COMMANDS = [
|
15
|
+
COMMAND_START = 'start',
|
16
|
+
COMMAND_LIST = 'list',
|
17
|
+
COMMAND_SHOW = 'show',
|
18
|
+
COMMAND_SHELL = 'shell',
|
19
|
+
COMMAND_PULL = 'pull',
|
20
|
+
COMMAND_INSTALL_PLUGINS = 'install-plugins'
|
21
|
+
].freeze
|
22
|
+
|
23
|
+
attr_reader :arguments
|
24
|
+
|
25
|
+
def initialize(args)
|
26
|
+
parse(args)
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def parse(args)
|
32
|
+
@arguments = ::Redmine::CLI::Arguments.new
|
33
|
+
# options = OpenStruct.new
|
34
|
+
opt_parser = OptionParser.new do |opts|
|
35
|
+
end
|
36
|
+
|
37
|
+
opt_parser.parse!(args)
|
38
|
+
parse_remainings(args)
|
39
|
+
end
|
40
|
+
|
41
|
+
def parse_remainings(args)
|
42
|
+
command = args.shift
|
43
|
+
case command
|
44
|
+
when COMMAND_START
|
45
|
+
@arguments.command = COMMAND_START
|
46
|
+
when COMMAND_LIST
|
47
|
+
@arguments.command = COMMAND_LIST
|
48
|
+
when COMMAND_SHOW
|
49
|
+
process_show_command(args)
|
50
|
+
when COMMAND_SHELL
|
51
|
+
process_shell_command(args)
|
52
|
+
when COMMAND_PULL
|
53
|
+
process_pull_command(args)
|
54
|
+
when COMMAND_INSTALL_PLUGINS
|
55
|
+
process_install_plugins_command(args)
|
56
|
+
else
|
57
|
+
puts "Unknown command #{command}"
|
58
|
+
raise UnclearCommand, command
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def process_show_command(args)
|
63
|
+
@arguments.command = COMMAND_SHOW
|
64
|
+
@arguments.instance_name = args.shift
|
65
|
+
end
|
66
|
+
|
67
|
+
def process_shell_command(args)
|
68
|
+
@arguments.command = COMMAND_SHELL
|
69
|
+
@arguments.instance_name = args.shift
|
70
|
+
end
|
71
|
+
|
72
|
+
def process_pull_command(args)
|
73
|
+
@arguments.command = COMMAND_PULL
|
74
|
+
@arguments.instance_name = args.shift
|
75
|
+
end
|
76
|
+
|
77
|
+
def process_install_plugins_command(args)
|
78
|
+
@arguments.command = COMMAND_INSTALL_PLUGINS
|
79
|
+
@arguments.config_path = args.shift
|
80
|
+
@arguments.plugins_path = args.shift
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require_relative '../config'
|
5
|
+
require_relative './parser'
|
6
|
+
require_relative './command_factory'
|
7
|
+
|
8
|
+
module Redmine
|
9
|
+
module CLI
|
10
|
+
class Runner
|
11
|
+
def run
|
12
|
+
perform
|
13
|
+
# run_docker
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def cli_args
|
19
|
+
ARGV
|
20
|
+
end
|
21
|
+
|
22
|
+
def config
|
23
|
+
@config ||= Redmine::Config.new(config_filename)
|
24
|
+
rescue
|
25
|
+
puts $!.message
|
26
|
+
puts $!.backtrace
|
27
|
+
puts "Invalid or missing #{config_filename}"
|
28
|
+
end
|
29
|
+
|
30
|
+
def arguments
|
31
|
+
@arguments ||= Redmine::CLI::Parser.new(cli_args).arguments
|
32
|
+
end
|
33
|
+
|
34
|
+
def perform
|
35
|
+
command = CommandFactory.new(arguments, config).command
|
36
|
+
command.execute
|
37
|
+
end
|
38
|
+
|
39
|
+
def config_filename
|
40
|
+
'config.yml'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Redmine
|
2
|
+
module Commands
|
3
|
+
module Docker
|
4
|
+
class Build
|
5
|
+
def initialize(config)
|
6
|
+
@config = config
|
7
|
+
end
|
8
|
+
|
9
|
+
def command_line
|
10
|
+
"cd docker && docker build -t redmineup/demo-base --build-arg ruby_version=#{@config.ruby_version} --build-arg redmine_version=#{@config.redmine_version} ."
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'tmpdir'
|
4
|
+
|
5
|
+
module Redmine
|
6
|
+
module Commands
|
7
|
+
module Docker
|
8
|
+
class CopyConfig
|
9
|
+
def initialize(config)
|
10
|
+
@config = config
|
11
|
+
end
|
12
|
+
|
13
|
+
def command_line
|
14
|
+
"cat << EOF >#{Dir.tmpdir}/config.yml\n#{@config.yaml}\nEOF\ndocker cp #{Dir.tmpdir}/config.yml #{@config.name}:/config.yml; rm -f #{Dir.tmpdir}/config.yml"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Redmine
|
4
|
+
module Commands
|
5
|
+
module Docker
|
6
|
+
class Create
|
7
|
+
def initialize(config)
|
8
|
+
@config = config
|
9
|
+
end
|
10
|
+
|
11
|
+
def command_line
|
12
|
+
"docker create --rm --name=#{@config.name} -e PORT=#{@config.port} -p #{@config.port}:#{@config.port} --mount source=redmine-pg,target=/var/lib/postgresql/9.5/main redmineup/demo-base"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Redmine
|
4
|
+
module Commands
|
5
|
+
module Docker
|
6
|
+
class CreateVolume
|
7
|
+
def initialize(config)
|
8
|
+
@config = config
|
9
|
+
end
|
10
|
+
|
11
|
+
def command_line
|
12
|
+
"docker volume create redmine-pg-#{@config.name}"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'ostruct'
|
4
|
+
|
5
|
+
require_relative './shell'
|
6
|
+
|
7
|
+
module Redmine
|
8
|
+
module Commands
|
9
|
+
DOCKER_LIST_COMMAND = 'docker ps'
|
10
|
+
class List
|
11
|
+
def results
|
12
|
+
parse(Shell.new.execute('docker ps'))
|
13
|
+
end
|
14
|
+
|
15
|
+
def execute
|
16
|
+
Redmine::Commands::ListPrinter.new.print_results(results)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def parse(docker_ps_output)
|
22
|
+
results = docker_ps_output.split("\n")[1..-1].map do |line|
|
23
|
+
process_line(line)
|
24
|
+
end
|
25
|
+
results.select { |result| result.name =~ /^redmine-run__/ }
|
26
|
+
end
|
27
|
+
|
28
|
+
def process_line(line)
|
29
|
+
line_tokens = line.split(/\s{2,}/)
|
30
|
+
OpenStruct.new(
|
31
|
+
container_id: line_tokens[0],
|
32
|
+
image: line_tokens[1],
|
33
|
+
command: line_tokens[2],
|
34
|
+
created: line_tokens[3],
|
35
|
+
status: line_tokens[4],
|
36
|
+
ports: line_tokens[5],
|
37
|
+
name: line_tokens[6]
|
38
|
+
)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Redmine
|
2
|
+
module Commands
|
3
|
+
class ListPrinter
|
4
|
+
def print(results)
|
5
|
+
banner
|
6
|
+
results.map { |result| print_result(result) }
|
7
|
+
footer
|
8
|
+
end
|
9
|
+
|
10
|
+
def banner
|
11
|
+
puts 'RUNNING REDMINE INSTANCES:'
|
12
|
+
puts '=========================='
|
13
|
+
end
|
14
|
+
|
15
|
+
def print_result(result)
|
16
|
+
puts "\t#{result.name.gsub(/^redmine-run__/, '')}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def footer
|
20
|
+
puts "\n\n"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'ostruct'
|
4
|
+
|
5
|
+
require_relative '../utils/plugin_installer'
|
6
|
+
|
7
|
+
module Redmine
|
8
|
+
module Commands
|
9
|
+
class PullPlugins
|
10
|
+
def initialize(args)
|
11
|
+
@args = args
|
12
|
+
end
|
13
|
+
|
14
|
+
def execute
|
15
|
+
config.plugins.values.each do |plugin|
|
16
|
+
installer = Redmine::Utils::PluginInstaller.new(
|
17
|
+
@args.plugins_path,
|
18
|
+
OpenStruct.new(plugin)
|
19
|
+
)
|
20
|
+
installer.install
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def config
|
27
|
+
@config ||= Redmine::Config.new(@args.config_path)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'open3'
|
4
|
+
|
5
|
+
require_relative './docker/build'
|
6
|
+
require_relative './docker/create_volume'
|
7
|
+
require_relative './docker/create'
|
8
|
+
require_relative './docker/copy_config'
|
9
|
+
require_relative './docker/start'
|
10
|
+
|
11
|
+
module Redmine
|
12
|
+
module Commands
|
13
|
+
class Start
|
14
|
+
attr_reader :config, :arguments
|
15
|
+
|
16
|
+
def initialize(arguments, config)
|
17
|
+
@arguments = arguments
|
18
|
+
@config = config
|
19
|
+
end
|
20
|
+
|
21
|
+
def execute
|
22
|
+
run_command Redmine::Commands::Docker::Build.new(config).command_line
|
23
|
+
run_command Redmine::Commands::Docker::CreateVolume.new(config).command_line
|
24
|
+
run_command Redmine::Commands::Docker::Create.new(config).command_line
|
25
|
+
run_command Redmine::Commands::Docker::CopyConfig.new(config).command_line
|
26
|
+
run_command Redmine::Commands::Docker::Start.new(config).command_line
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def run_command(command_line)
|
32
|
+
puts "+ #{command_line}"
|
33
|
+
Open3.popen3(command_line) do |input, output, error, process_thread|
|
34
|
+
Thread.new {
|
35
|
+
until input.closed?
|
36
|
+
inp = gets.chomp
|
37
|
+
puts inp
|
38
|
+
input.puts inp
|
39
|
+
end
|
40
|
+
}
|
41
|
+
|
42
|
+
t_err = Thread.new {
|
43
|
+
until error.eof?
|
44
|
+
putc error.readchar
|
45
|
+
end
|
46
|
+
}
|
47
|
+
|
48
|
+
t_out = Thread.new {
|
49
|
+
until output.eof?
|
50
|
+
putc output.readchar
|
51
|
+
end
|
52
|
+
}
|
53
|
+
|
54
|
+
Process::waitpid(process_thread.pid) rescue nil
|
55
|
+
# "rescue nil" is there in case process already ended.
|
56
|
+
|
57
|
+
t_err.join
|
58
|
+
t_out.join
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
module Redmine
|
6
|
+
class Config
|
7
|
+
def initialize(filename)
|
8
|
+
@filename = filename
|
9
|
+
parse
|
10
|
+
end
|
11
|
+
|
12
|
+
def ruby_version
|
13
|
+
@config['ruby']['version']
|
14
|
+
end
|
15
|
+
|
16
|
+
def redmine_version
|
17
|
+
@config['redmine']['version']
|
18
|
+
end
|
19
|
+
|
20
|
+
def port
|
21
|
+
@config['server']['port']
|
22
|
+
end
|
23
|
+
|
24
|
+
def name
|
25
|
+
"redmine-run__#{@config['name']}"
|
26
|
+
end
|
27
|
+
|
28
|
+
def plugins
|
29
|
+
@config['plugins']
|
30
|
+
end
|
31
|
+
|
32
|
+
def yaml
|
33
|
+
YAML.dump(@config)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def parse
|
39
|
+
content = File.read(@filename)
|
40
|
+
@config = YAML.safe_load(content)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Redmine
|
2
|
+
module Utils
|
3
|
+
class PluginInstaller
|
4
|
+
def initialize(plugins_folder, plugin_props)
|
5
|
+
@plugins_folder = plugins_folder
|
6
|
+
@plugin = plugin_props
|
7
|
+
end
|
8
|
+
|
9
|
+
def install
|
10
|
+
if folder_exists?
|
11
|
+
update_plugin
|
12
|
+
else
|
13
|
+
clone_plugin
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def folder_exists?
|
20
|
+
File.directory?(dest_dir)
|
21
|
+
end
|
22
|
+
|
23
|
+
def dest_dir
|
24
|
+
File.join(@plugins_folder, @plugin.folder)
|
25
|
+
end
|
26
|
+
|
27
|
+
def shell
|
28
|
+
@shell ||= Redmine::Commands::Shell.new
|
29
|
+
end
|
30
|
+
|
31
|
+
def clone_plugin
|
32
|
+
shell.execute(
|
33
|
+
"git clone #{@plugin.git} #{dest_dir}"
|
34
|
+
)
|
35
|
+
end
|
36
|
+
|
37
|
+
def update_plugin
|
38
|
+
shell.execute(
|
39
|
+
"cd #{dest_dir}; git fetch -a; git reset --hard #{commit_specification}"
|
40
|
+
)
|
41
|
+
end
|
42
|
+
|
43
|
+
def commit_specification
|
44
|
+
return @plugin.tag if @plugin.tag
|
45
|
+
return "origin/#{@plugin.branch}" if @plugin.branch
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
metadata
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: run-redmine
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Andrei Malyshev
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-04-25 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description:
|
14
|
+
email: Andrei.Malyshev@kodep.ru
|
15
|
+
executables:
|
16
|
+
- redmine
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- bin/redmine
|
21
|
+
- docker/Dockerfile
|
22
|
+
- docker/database.yml
|
23
|
+
- docker/pg/pg_hba.conf
|
24
|
+
- docker/run.sh
|
25
|
+
- lib/redmine.rb
|
26
|
+
- lib/redmine/banner.rb
|
27
|
+
- lib/redmine/cli/arguments.rb
|
28
|
+
- lib/redmine/cli/command_factory.rb
|
29
|
+
- lib/redmine/cli/parser.rb
|
30
|
+
- lib/redmine/cli/runner.rb
|
31
|
+
- lib/redmine/commands/docker/build.rb
|
32
|
+
- lib/redmine/commands/docker/copy_config.rb
|
33
|
+
- lib/redmine/commands/docker/create.rb
|
34
|
+
- lib/redmine/commands/docker/create_volume.rb
|
35
|
+
- lib/redmine/commands/docker/start.rb
|
36
|
+
- lib/redmine/commands/list.rb
|
37
|
+
- lib/redmine/commands/list_printer.rb
|
38
|
+
- lib/redmine/commands/pull_plugins.rb
|
39
|
+
- lib/redmine/commands/shell.rb
|
40
|
+
- lib/redmine/commands/start.rb
|
41
|
+
- lib/redmine/config.rb
|
42
|
+
- lib/redmine/utils/plugin_installer.rb
|
43
|
+
homepage: https://redmineup.com
|
44
|
+
licenses:
|
45
|
+
- MIT
|
46
|
+
metadata: {}
|
47
|
+
post_install_message:
|
48
|
+
rdoc_options: []
|
49
|
+
require_paths:
|
50
|
+
- lib
|
51
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
requirements: []
|
62
|
+
rubyforge_project:
|
63
|
+
rubygems_version: 2.7.6
|
64
|
+
signing_key:
|
65
|
+
specification_version: 4
|
66
|
+
summary: Run redmine in one line
|
67
|
+
test_files: []
|