rspec-pgp_matchers 0.1.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/.editorconfig +21 -0
- data/.gitignore +12 -0
- data/.hound.yml +3 -0
- data/.rspec +3 -0
- data/.rubocop.ribose.yml +65 -0
- data/.rubocop.tb.yml +650 -0
- data/.rubocop.yml +40 -0
- data/.travis.yml +77 -0
- data/Gemfile +12 -0
- data/LICENSE.txt +21 -0
- data/README.adoc +114 -0
- data/Rakefile +115 -0
- data/bin/bundle +105 -0
- data/bin/console +14 -0
- data/bin/rake +29 -0
- data/bin/rspec +29 -0
- data/bin/setup +8 -0
- data/ci/gemfiles/common.gemfile +6 -0
- data/ci/gemfiles/rspec-3.4.gemfile +5 -0
- data/ci/gemfiles/rspec-3.5.gemfile +5 -0
- data/ci/gemfiles/rspec-3.6.gemfile +5 -0
- data/ci/gemfiles/rspec-3.7.gemfile +5 -0
- data/ci/install_gpg_all.sh +137 -0
- data/ci/install_gpg_component.sh +301 -0
- data/lib/rspec/pgp_matchers.rb +16 -0
- data/lib/rspec/pgp_matchers/be_a_pgp_encrypted_message.rb +113 -0
- data/lib/rspec/pgp_matchers/be_a_valid_pgp_signature_of.rb +95 -0
- data/lib/rspec/pgp_matchers/gpg_matcher_helper.rb +63 -0
- data/lib/rspec/pgp_matchers/version.rb +8 -0
- data/rspec-pgp_matchers.gemspec +37 -0
- metadata +164 -0
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "rspec/pgp_matchers"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/rake
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rake' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require "pathname"
|
12
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require "rubygems"
|
27
|
+
require "bundler/setup"
|
28
|
+
|
29
|
+
load Gem.bin_path("rake", "rake")
|
data/bin/rspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rspec' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require "pathname"
|
12
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require "rubygems"
|
27
|
+
require "bundler/setup"
|
28
|
+
|
29
|
+
load Gem.bin_path("rspec-core", "rspec")
|
data/bin/setup
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
# Popular combinations of GPG software versions.
|
4
|
+
#
|
5
|
+
# For v2.2: https://gist.github.com/vt0r/a2f8c0bcb1400131ff51
|
6
|
+
# For v2.1: https://gist.github.com/mattrude/3883a3801613b048d45b
|
7
|
+
#
|
8
|
+
# USAGE:
|
9
|
+
# ./install_gpg_all.sh <version> [<options>]
|
10
|
+
#
|
11
|
+
# EXAMPLE
|
12
|
+
# ./install_gpg_all.sh 2.2
|
13
|
+
|
14
|
+
set -e
|
15
|
+
|
16
|
+
readonly __progname=$(basename $0)
|
17
|
+
|
18
|
+
errx() {
|
19
|
+
echo -e "$__progname: $@" >&2
|
20
|
+
exit 1
|
21
|
+
}
|
22
|
+
|
23
|
+
usage() {
|
24
|
+
echo "usage: $__progname [-t <TEMP_BUILD_DIR>] [-i <GPG_VERSION>] [-d]"
|
25
|
+
echo ""
|
26
|
+
echo " Options:"
|
27
|
+
echo " -d for dry run, not building GPG components."
|
28
|
+
echo " -i to select the GPG version to install [major.minor], defaults to `latest`."
|
29
|
+
echo " - `latest`: latest version of GnuPG."
|
30
|
+
echo " - `x.y`: specific version x.y of GnuPG, e.g. `2.2`."
|
31
|
+
echo " - `master`: build from GnuPG git master branch."
|
32
|
+
echo " -h to display this message"
|
33
|
+
echo ""
|
34
|
+
echo " Arguments can also be set via environment variables: "
|
35
|
+
echo " - TEMP_BUILD_DIR"
|
36
|
+
echo " - GPG_VERSION"
|
37
|
+
exit 1
|
38
|
+
}
|
39
|
+
|
40
|
+
prequisites_yum() {
|
41
|
+
yum install -y bzip2 gcc make sudo
|
42
|
+
}
|
43
|
+
|
44
|
+
detect_platform() {
|
45
|
+
# Determine OS platform
|
46
|
+
DISTRO=$(awk -F= '/^NAME/{print $2}' /etc/os-release | tr -d \")
|
47
|
+
echo "$DISTRO"
|
48
|
+
}
|
49
|
+
|
50
|
+
main() {
|
51
|
+
|
52
|
+
while getopts ":t:idh" o; do
|
53
|
+
case "${o}" in
|
54
|
+
t)
|
55
|
+
readonly local TEMP_BUILD_DIR=1
|
56
|
+
;;
|
57
|
+
i)
|
58
|
+
readonly local GPG_VERSION=${OPTARG}
|
59
|
+
;;
|
60
|
+
d)
|
61
|
+
readonly local DRYRUN=1
|
62
|
+
;;
|
63
|
+
h)
|
64
|
+
usage
|
65
|
+
;;
|
66
|
+
*)
|
67
|
+
usage
|
68
|
+
;;
|
69
|
+
esac
|
70
|
+
done
|
71
|
+
|
72
|
+
if [ "x$GPG_VERSION" == "x" ]; then
|
73
|
+
GPG_VERSION="latest"
|
74
|
+
fi
|
75
|
+
|
76
|
+
[[ ! "$TEMP_BUILD_DIR" ]] && \
|
77
|
+
TEMP_BUILD_DIR="$(mktemp -d)"
|
78
|
+
|
79
|
+
DISTRO="$(detect_platform)"
|
80
|
+
|
81
|
+
case $DISTRO in
|
82
|
+
"CentOS Linux")
|
83
|
+
echo "Installing CentOS yum dependencies"
|
84
|
+
prequisites_yum
|
85
|
+
;;
|
86
|
+
esac
|
87
|
+
|
88
|
+
case "$GPG_VERSION" in
|
89
|
+
"2.2")
|
90
|
+
./install_gpg_component.sh --component libgpg-error --version 1.31 --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
91
|
+
./install_gpg_component.sh --component libgcrypt --version 1.8.2 --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
92
|
+
./install_gpg_component.sh --component libassuan --version 2.5.1 --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
93
|
+
./install_gpg_component.sh --component libksba --version 1.3.5 --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
94
|
+
./install_gpg_component.sh --component npth --version 1.5 --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
95
|
+
./install_gpg_component.sh --component pinentry --version 1.1.0 --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
96
|
+
./install_gpg_component.sh --component gnupg --version 2.2.7 --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
97
|
+
;;
|
98
|
+
"2.1")
|
99
|
+
./install_gpg_component.sh --component libgpg-error --version 1.27 --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
100
|
+
./install_gpg_component.sh --component libgcrypt --version 1.7.6 --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
101
|
+
./install_gpg_component.sh --component libassuan --version 2.4.3 --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
102
|
+
./install_gpg_component.sh --component libksba --version 1.3.5 --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
103
|
+
./install_gpg_component.sh --component npth --version 1.2 --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
104
|
+
./install_gpg_component.sh --component pinentry --version 0.9.5 --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
105
|
+
./install_gpg_component.sh --component gnupg --version 2.1.20 --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
106
|
+
;;
|
107
|
+
"latest")
|
108
|
+
./install_gpg_component.sh --component libgpg-error --version latest --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
109
|
+
./install_gpg_component.sh --component libgcrypt --version latest --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
110
|
+
./install_gpg_component.sh --component libassuan --version latest --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
111
|
+
./install_gpg_component.sh --component libksba --version latest --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
112
|
+
./install_gpg_component.sh --component npth --version latest --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
113
|
+
./install_gpg_component.sh --component pinentry --version latest --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
114
|
+
./install_gpg_component.sh --component gnupg --version latest --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
115
|
+
;;
|
116
|
+
"master")
|
117
|
+
./install_gpg_component.sh --component libgpg-error --version master --git --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
118
|
+
./install_gpg_component.sh --component libgcrypt --version master --git --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
119
|
+
./install_gpg_component.sh --component libassuan --version master --git --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
120
|
+
./install_gpg_component.sh --component libksba --version master --git --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
121
|
+
./install_gpg_component.sh --component npth --version master --git --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
122
|
+
./install_gpg_component.sh --component pinentry --version master --git --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
123
|
+
./install_gpg_component.sh --component gnupg --version master --git --build-dir "$TEMP_BUILD_DIR" "${@:2}"
|
124
|
+
;;
|
125
|
+
esac
|
126
|
+
|
127
|
+
cat <<DONE
|
128
|
+
+-------------------+
|
129
|
+
| INSTALL COMPLETE! |
|
130
|
+
+-------------------+
|
131
|
+
DONE
|
132
|
+
|
133
|
+
}
|
134
|
+
|
135
|
+
main "$@"
|
136
|
+
|
137
|
+
exit 0
|
@@ -0,0 +1,301 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
|
4
|
+
######################
|
5
|
+
# ARGUMENTS HANDLING #
|
6
|
+
######################
|
7
|
+
|
8
|
+
print_help ()
|
9
|
+
{
|
10
|
+
cat <<HELP
|
11
|
+
USAGE
|
12
|
+
|
13
|
+
install_gpg_component.rb <options>
|
14
|
+
|
15
|
+
EXAMPLES
|
16
|
+
|
17
|
+
# Installing latest version of libgpg-error
|
18
|
+
install_gpg_component.rb --component libgpg-error --version latest
|
19
|
+
|
20
|
+
# Installing latest version of libgpg-error with sudo
|
21
|
+
install_gpg_component.rb --component libgpg-error --version latest --sudo
|
22
|
+
|
23
|
+
# Installing latest git revision of libgpg-error
|
24
|
+
install_gpg_component.rb --component libgpg-error --version master --git
|
25
|
+
|
26
|
+
# Passing options to ./configure script
|
27
|
+
install_gpg_component.rb --component libgpg-error --version latest --configure-opts "--disable-doc --exec-prefix=/my/bin"
|
28
|
+
|
29
|
+
OPTIONS
|
30
|
+
|
31
|
+
--component COMPONENT
|
32
|
+
Component to install
|
33
|
+
|
34
|
+
--version VERSION
|
35
|
+
Component version to install (use "latest" for the latest release),
|
36
|
+
or git ref (branch, tag, commit hash etc.) when used with "--git"
|
37
|
+
option (typically "master").
|
38
|
+
|
39
|
+
--[no-]git
|
40
|
+
Fetch source code from git repository instead of downloading release,
|
41
|
+
pass branch or tag name to --version argument. By default it is off.
|
42
|
+
|
43
|
+
--[no-]sudo
|
44
|
+
Whether to do 'sudo make install', or just 'make install'.
|
45
|
+
Doesn't affect post install steps, which may require sudo. By default
|
46
|
+
it is off.
|
47
|
+
|
48
|
+
--configure-opts OPTS
|
49
|
+
Options to be passed to "./configure" script.
|
50
|
+
|
51
|
+
--build-dir DIR
|
52
|
+
Directory in which the compilation will happen. Content may be
|
53
|
+
overwritten during build. Directory will be created if non-existent.
|
54
|
+
|
55
|
+
--folding-style STYLE
|
56
|
+
If set, enables output folding. STYLE defines the folding notation
|
57
|
+
used. Following STYLE values are recognized:
|
58
|
+
|
59
|
+
"none"
|
60
|
+
Disable folding. This is default.
|
61
|
+
|
62
|
+
"travis"
|
63
|
+
Fold output for Travis CI builds. See this example Travis job:
|
64
|
+
https://api.travis-ci.org/v3/job/15440998/log.txt
|
65
|
+
|
66
|
+
--help, -h
|
67
|
+
Displays this message
|
68
|
+
|
69
|
+
HELP
|
70
|
+
}
|
71
|
+
|
72
|
+
set_default_options()
|
73
|
+
{
|
74
|
+
_arg_build_dir=
|
75
|
+
_arg_configure_opts=
|
76
|
+
_arg_sudo="off"
|
77
|
+
_arg_git="off"
|
78
|
+
_arg_color="off"
|
79
|
+
_arg_folding_style="none"
|
80
|
+
}
|
81
|
+
|
82
|
+
parse_cli_arguments()
|
83
|
+
{
|
84
|
+
while test $# -gt 0
|
85
|
+
do
|
86
|
+
case "$1" in
|
87
|
+
--component)
|
88
|
+
_arg_component="$2"
|
89
|
+
shift
|
90
|
+
shift
|
91
|
+
;;
|
92
|
+
--version)
|
93
|
+
_arg_version="$2"
|
94
|
+
shift
|
95
|
+
shift
|
96
|
+
;;
|
97
|
+
--build-dir)
|
98
|
+
_arg_build_dir="$2"
|
99
|
+
shift
|
100
|
+
shift
|
101
|
+
;;
|
102
|
+
--configure-opts)
|
103
|
+
_arg_configure_opts="$2"
|
104
|
+
shift
|
105
|
+
shift
|
106
|
+
;;
|
107
|
+
--sudo)
|
108
|
+
_arg_sudo="on"
|
109
|
+
shift
|
110
|
+
;;
|
111
|
+
--no-sudo)
|
112
|
+
_arg_sudo="off"
|
113
|
+
shift
|
114
|
+
;;
|
115
|
+
--git)
|
116
|
+
_arg_git="on"
|
117
|
+
shift
|
118
|
+
;;
|
119
|
+
--no-git)
|
120
|
+
_arg_git="off"
|
121
|
+
shift
|
122
|
+
;;
|
123
|
+
--folding-style)
|
124
|
+
_arg_folding_style="$2"
|
125
|
+
shift
|
126
|
+
shift
|
127
|
+
;;
|
128
|
+
-h|--help)
|
129
|
+
print_help
|
130
|
+
exit 0
|
131
|
+
;;
|
132
|
+
*)
|
133
|
+
echo "Unrecognized option: $1, exiting."
|
134
|
+
exit 1
|
135
|
+
esac
|
136
|
+
done
|
137
|
+
}
|
138
|
+
|
139
|
+
######################
|
140
|
+
# BUILDING #
|
141
|
+
######################
|
142
|
+
|
143
|
+
display_config()
|
144
|
+
{
|
145
|
+
cat <<CONFIG
|
146
|
+
component: "${_arg_component}"
|
147
|
+
version: "${_arg_version}"
|
148
|
+
git: "${_arg_git}"
|
149
|
+
sudo: "${_arg_sudo}"
|
150
|
+
build_dir: "${_arg_build_dir}"
|
151
|
+
configure_options: "${_arg_configure_opts}"
|
152
|
+
|
153
|
+
CONFIG
|
154
|
+
}
|
155
|
+
|
156
|
+
# Consults https://versions.gnupg.org/swdb.lst and assigns the most recent
|
157
|
+
# version of component ${_arg_component} to ${_arg_version} variable.
|
158
|
+
determine_latest_version()
|
159
|
+
{
|
160
|
+
fold_start "component.${_arg_component}.detect-latest"
|
161
|
+
local _component_underscored=`echo "${_arg_component}" | tr - _`
|
162
|
+
_arg_version=`curl "https://versions.gnupg.org/swdb.lst" | grep "_ver" | grep -v "w32" | sort --reverse | grep "${_component_underscored}" | head -n 1 | cut -d " " -f 2`
|
163
|
+
echo "The latest version of ${_arg_component} is ${_arg_version}."
|
164
|
+
fold_end "component.${_arg_component}.fetch"
|
165
|
+
}
|
166
|
+
|
167
|
+
fetch_source()
|
168
|
+
{
|
169
|
+
fold_start "component.${_arg_component}.fetch"
|
170
|
+
if [[ "${_arg_git}" = "on" ]]; then
|
171
|
+
fetch_from_git
|
172
|
+
else
|
173
|
+
fetch_release
|
174
|
+
fi
|
175
|
+
fold_end "component.${_arg_component}.fetch"
|
176
|
+
}
|
177
|
+
|
178
|
+
fetch_release()
|
179
|
+
{
|
180
|
+
local _tarball_file_name="${_arg_component}-${_arg_version}.tar.bz2"
|
181
|
+
local _tarball_url="https://gnupg.org/ftp/gcrypt/${_arg_component}/${_tarball_file_name}"
|
182
|
+
curl ${_tarball_url} --remote-name --retry 5
|
183
|
+
tar -xjf ${_tarball_file_name}
|
184
|
+
rm ${_tarball_file_name}
|
185
|
+
set_component_build_dir "${_arg_component}-${_arg_version}"
|
186
|
+
}
|
187
|
+
|
188
|
+
fetch_from_git()
|
189
|
+
{
|
190
|
+
local _git_url="git://git.gnupg.org/${_arg_component}"
|
191
|
+
set_component_build_dir "${_arg_component}-git-${_arg_version}"
|
192
|
+
|
193
|
+
if [ ! -d "${_component_build_dir}" ]; then
|
194
|
+
git clone ${_git_url} "${_component_build_dir}"
|
195
|
+
else
|
196
|
+
pushd "${_component_build_dir}"
|
197
|
+
git fetch # need to fetch prior checkout, ref may be nonexistent locally
|
198
|
+
popd
|
199
|
+
fi
|
200
|
+
|
201
|
+
pushd "${_component_build_dir}"
|
202
|
+
git checkout ${_arg_version}
|
203
|
+
git pull # in case of outdated local branch
|
204
|
+
popd
|
205
|
+
}
|
206
|
+
|
207
|
+
build_and_install()
|
208
|
+
{
|
209
|
+
pushd "${_component_build_dir}"
|
210
|
+
if [ ! -f configure ]; then
|
211
|
+
fold_start "component.${_arg_component}.autogen"
|
212
|
+
./autogen.sh
|
213
|
+
fold_end "component.${_arg_component}.autogen"
|
214
|
+
fi
|
215
|
+
fold_start "component.${_arg_component}.configure"
|
216
|
+
./configure ${_arg_configure_opts}
|
217
|
+
fold_end "component.${_arg_component}.configure"
|
218
|
+
fold_start "component.${_arg_component}.build"
|
219
|
+
make > /dev/null
|
220
|
+
fold_end "component.${_arg_component}.build"
|
221
|
+
fold_start "component.${_arg_component}.install"
|
222
|
+
sudo make install > /dev/null
|
223
|
+
fold_end "component.${_arg_component}.install"
|
224
|
+
popd
|
225
|
+
}
|
226
|
+
|
227
|
+
set_component_build_dir()
|
228
|
+
{
|
229
|
+
_component_build_dir=$1
|
230
|
+
}
|
231
|
+
|
232
|
+
header()
|
233
|
+
{
|
234
|
+
echo ""
|
235
|
+
echo ""
|
236
|
+
echo "=== $1 ==="
|
237
|
+
echo ""
|
238
|
+
echo ""
|
239
|
+
}
|
240
|
+
|
241
|
+
######################
|
242
|
+
# PRETTY OUTPUT #
|
243
|
+
######################
|
244
|
+
|
245
|
+
fold_start()
|
246
|
+
{
|
247
|
+
case "${_arg_folding_style}" in
|
248
|
+
travis)
|
249
|
+
echo "travis_fold:start:$1"
|
250
|
+
;;
|
251
|
+
*)
|
252
|
+
;;
|
253
|
+
esac
|
254
|
+
}
|
255
|
+
|
256
|
+
fold_end()
|
257
|
+
{
|
258
|
+
case "${_arg_folding_style}" in
|
259
|
+
travis)
|
260
|
+
echo "travis_fold:end:$1"
|
261
|
+
;;
|
262
|
+
*)
|
263
|
+
;;
|
264
|
+
esac
|
265
|
+
}
|
266
|
+
|
267
|
+
######################
|
268
|
+
# MAIN #
|
269
|
+
######################
|
270
|
+
|
271
|
+
set -e # Early exit if any command returns non-zero status code
|
272
|
+
|
273
|
+
set_default_options
|
274
|
+
parse_cli_arguments "$@"
|
275
|
+
|
276
|
+
fold_start "component.${_arg_component}"
|
277
|
+
|
278
|
+
header "Installing ${_arg_component} / ${_arg_version}"
|
279
|
+
|
280
|
+
display_config
|
281
|
+
|
282
|
+
# set -x # From now, print every command to STDOUT
|
283
|
+
|
284
|
+
if [[ "${_arg_version}" =~ ^latest ]]; then
|
285
|
+
determine_latest_version
|
286
|
+
fi
|
287
|
+
|
288
|
+
mkdir -p ${_arg_build_dir}
|
289
|
+
pushd ${_arg_build_dir}
|
290
|
+
fetch_source
|
291
|
+
build_and_install
|
292
|
+
popd # _arg_build_dir
|
293
|
+
|
294
|
+
if [[ "${_arg_component}" =~ ^gnupg ]]; then
|
295
|
+
fold_start "component.${_arg_component}.post-install"
|
296
|
+
sudo tee -a /etc/ld.so.conf.d/gpg2.conf <<<"/usr/local/lib"
|
297
|
+
sudo ldconfig -v
|
298
|
+
fold_end "component.${_arg_component}.post-install"
|
299
|
+
fi
|
300
|
+
|
301
|
+
fold_end "component.${_arg_component}"
|