summaryrefslogtreecommitdiff
path: root/habitat
diff options
context:
space:
mode:
authorSalim Afiune <afiune@chef.io>2019-08-02 09:53:34 +0200
committerSalim Afiune <afiune@chef.io>2019-08-02 09:53:34 +0200
commita6acfe338b4b650a8c8a4336d346a05036d21fcb (patch)
tree489ab0934ebc324c0cf777cee280f82dfd21ba0a /habitat
parent3284e9067aacbe42f96afc78b06e523b46b98d2f (diff)
downloadchef-a6acfe338b4b650a8c8a4336d346a05036d21fcb.tar.gz
Cleanup habitat/plan.sh for chef-infra-client
Signed-off-by: Salim Afiune <afiune@chef.io>
Diffstat (limited to 'habitat')
-rw-r--r--habitat/chef-infra-client/plan.sh132
-rw-r--r--habitat/config/client.rb (renamed from habitat/chef-infra-client/config/client.rb)0
-rw-r--r--habitat/default.toml (renamed from habitat/chef-infra-client/default.toml)0
-rw-r--r--habitat/hooks/init (renamed from habitat/chef-infra-client/hooks/init)0
-rw-r--r--habitat/hooks/run (renamed from habitat/chef-infra-client/hooks/run)0
-rw-r--r--habitat/plan.sh149
6 files changed, 149 insertions, 132 deletions
diff --git a/habitat/chef-infra-client/plan.sh b/habitat/chef-infra-client/plan.sh
deleted file mode 100644
index 146f162718..0000000000
--- a/habitat/chef-infra-client/plan.sh
+++ /dev/null
@@ -1,132 +0,0 @@
-pkg_name=chef-infra-client
-pkg_origin=chef
-pkg_maintainer="The Chef Maintainers <humans@chef.io>"
-pkg_description="The Chef Infra Client"
-pkg_license=('Apache-2.0')
-pkg_filename="${pkg_name}-${pkg_version}.tar.gz"
-pkg_bin_dirs=(bin)
-pkg_build_deps=(
- core/make
- core/gcc
- core/git
-)
-pkg_deps=(
- core/glibc
- core/ruby26
- core/libxml2
- core/libxslt
- core/libiconv
- core/xz
- core/zlib
- core/bundler
- core/openssl
- core/cacerts
- core/libffi
- core/coreutils
- core/libarchive
-)
-pkg_svc_user=root
-
-pkg_version() {
- cat "${SRC_PATH}/../../VERSION"
-}
-
-do_before() {
- do_default_before
- update_pkg_version
-}
-
-do_download() {
- build_line "Locally creating archive of latest repository commit."
- # source is in this repo, so we're going to create an archive from the
- # appropriate path within the repo and place the generated tarball in the
- # location expected by do_unpack
- cd ${PLAN_CONTEXT}/../../
- git archive --prefix=${pkg_name}-${pkg_version}/ --output=${HAB_CACHE_SRC_PATH}/${pkg_filename} HEAD
-}
-
-do_verify() {
- build_line "Skipping checksum verification on the archive we just created."
- return 0
-}
-
-do_prepare() {
- export OPENSSL_LIB_DIR=$(pkg_path_for openssl)/lib
- export OPENSSL_INCLUDE_DIR=$(pkg_path_for openssl)/include
- export SSL_CERT_FILE=$(pkg_path_for cacerts)/ssl/cert.pem
-
- build_line "Setting link for /usr/bin/env to 'coreutils'"
- [[ ! -f /usr/bin/env ]] && ln -s $(pkg_path_for coreutils)/bin/env /usr/bin/env
-
- return 0
-}
-
-do_build() {
- export CPPFLAGS="${CPPFLAGS} ${CFLAGS}"
-
- local _bundler_dir=$(pkg_path_for bundler)
- local _libxml2_dir=$(pkg_path_for libxml2)
- local _libxslt_dir=$(pkg_path_for libxslt)
- local _zlib_dir=$(pkg_path_for zlib)
-
- export GEM_HOME=${pkg_prefix}/bundle
- export GEM_PATH=${_bundler_dir}:${GEM_HOME}
-
- export NOKOGIRI_CONFIG="--use-system-libraries --with-zlib-dir=${_zlib_dir} --with-xslt-dir=${_libxslt_dir} --with-xml2-include=${_libxml2_dir}/include/libxml2 --with-xml2-lib=${_libxml2_dir}/lib"
- bundle config --local build.nokogiri '${NOKOGIRI_CONFIG}'
-
- bundle config --local silence_root_warning 1
-
- pushd ${HAB_CACHE_SRC_PATH}/${pkg_name}-${pkg_version}/chef-config > /dev/null
- _bundle_install "${pkg_prefix}/bundle"
- popd > /dev/null
-
- _bundle_install "${pkg_prefix}/bundle"
-}
-
-do_install() {
- mkdir -p "${pkg_prefix}/chef"
- for dir in bin chef-bin chef-config lib chef.gemspec Gemfile Gemfile.lock; do
- cp -rv "${PLAN_CONTEXT}/../../${dir}" "${pkg_prefix}/chef/"
- done
-
- # This is just generating binstubs with the correct path.
- # If we generated them on install, bundler thinks our source is in $HAB_CACHE_SOURCE_PATH
- pushd "$pkg_prefix/chef" > /dev/null
- _bundle_install \
- "${pkg_prefix}/bundle" \
- --local \
- --quiet \
- --binstubs "${pkg_prefix}/bin"
- popd > /dev/null
-
- fix_interpreter "${pkg_prefix}/bin/*" core/coreutils bin/env
- fix_interpreter "${pkg_prefix}/bin/*" core/ruby26 bin/ruby
-}
-
-do_end() {
- if [[ `readlink /usr/bin/env` = "$(pkg_path_for coreutils)/bin/env" ]]; then
- build_line "Removing the symlink we created for '/usr/bin/env'"
- rm /usr/bin/env
- fi
-}
-
-do_strip() {
- return 0
-}
-
-# Helper function to wrap up some repetitive bundle install flags
-_bundle_install() {
- local path
- path="$1"
- shift
-
- bundle install ${*:-} \
- --jobs "$(nproc)" \
- --without development:test \
- --path "$path" \
- --shebang="$(pkg_path_for "core/ruby26")/bin/ruby" \
- --no-clean \
- --retry 5 \
- --standalone
-}
diff --git a/habitat/chef-infra-client/config/client.rb b/habitat/config/client.rb
index 3dd6d67e1b..3dd6d67e1b 100644
--- a/habitat/chef-infra-client/config/client.rb
+++ b/habitat/config/client.rb
diff --git a/habitat/chef-infra-client/default.toml b/habitat/default.toml
index 2bea08934b..2bea08934b 100644
--- a/habitat/chef-infra-client/default.toml
+++ b/habitat/default.toml
diff --git a/habitat/chef-infra-client/hooks/init b/habitat/hooks/init
index a23344b2a9..a23344b2a9 100644
--- a/habitat/chef-infra-client/hooks/init
+++ b/habitat/hooks/init
diff --git a/habitat/chef-infra-client/hooks/run b/habitat/hooks/run
index 598d609d7f..598d609d7f 100644
--- a/habitat/chef-infra-client/hooks/run
+++ b/habitat/hooks/run
diff --git a/habitat/plan.sh b/habitat/plan.sh
new file mode 100644
index 0000000000..182c6f352c
--- /dev/null
+++ b/habitat/plan.sh
@@ -0,0 +1,149 @@
+pkg_name=chef-infra-client
+pkg_origin=chef
+pkg_maintainer="The Chef Maintainers <humans@chef.io>"
+pkg_description="The Chef Infra Client"
+pkg_license=('Apache-2.0')
+pkg_bin_dirs=(bin)
+pkg_build_deps=(
+ core/make
+ core/gcc
+ core/git
+)
+pkg_deps=(
+ core/glibc
+ core/ruby26
+ core/libxml2
+ core/libxslt
+ core/libiconv
+ core/xz
+ core/zlib
+ core/bundler
+ core/openssl
+ core/cacerts
+ core/libffi
+ core/coreutils
+ core/libarchive
+)
+pkg_svc_user=root
+
+pkg_version() {
+ cat "${SRC_PATH}/VERSION"
+}
+
+do_before() {
+ do_default_before
+ update_pkg_version
+ # We must wait until we update the pkg_version to use the pkg_version
+ pkg_filename="${pkg_name}-${pkg_version}.tar.gz"
+}
+
+do_download() {
+ build_line "Locally creating archive of latest repository commit at ${HAB_CACHE_SRC_PATH}/${pkg_filename}"
+ # source is in this repo, so we're going to create an archive from the
+ # appropriate path within the repo and place the generated tarball in the
+ # location expected by do_unpack
+ ( cd "${SRC_PATH}" || exit_with "unable to enter hab-src directory" 1
+ git archive --prefix="${pkg_name}-${pkg_version}/" --output="${HAB_CACHE_SRC_PATH}/${pkg_filename}" HEAD
+ )
+}
+
+do_verify() {
+ build_line "Skipping checksum verification on the archive we just created."
+ return 0
+}
+
+do_prepare() {
+ export OPENSSL_LIB_DIR=$(pkg_path_for openssl)/lib
+ export OPENSSL_INCLUDE_DIR=$(pkg_path_for openssl)/include
+ export SSL_CERT_FILE=$(pkg_path_for cacerts)/ssl/cert.pem
+
+ build_line "Setting link for /usr/bin/env to 'coreutils'"
+ if [ ! -f /usr/bin/env ]; then
+ ln -s "$(pkg_interpreter_for core/coreutils bin/env)" /usr/bin/env
+ fi
+}
+
+do_build() {
+ local _bundler_dir
+ local _libxml2_dir
+ local _libxslt_dir
+ local _zlib_dir
+ export CPPFLAGS
+ export GEM_HOME
+ export GEM_PATH
+ export NOKOGIRI_CONFIG
+
+ _bundler_dir=$(pkg_path_for bundler)
+ _libxml2_dir=$(pkg_path_for libxml2)
+ _libxslt_dir=$(pkg_path_for libxslt)
+ _zlib_dir=$(pkg_path_for zlib)
+
+ CPPFLAGS="${CPPFLAGS} ${CFLAGS}"
+ GEM_HOME=${pkg_prefix}/bundle
+ GEM_PATH=${_bundler_dir}:${GEM_HOME}
+ NOKOGIRI_CONFIG="--use-system-libraries \
+ --with-zlib-dir=${_zlib_dir} \
+ --with-xslt-dir=${_libxslt_dir} \
+ --with-xml2-include=${_libxml2_dir}/include/libxml2 \
+ --with-xml2-lib=${_libxml2_dir}/lib"
+
+
+ build_line "Executing bundle install inside hab-cache path. ($CACHE_PATH/chef-config)"
+ ( cd "$CACHE_PATH/chef-config" || exit_with "unable to enter hab-cache directory" 1
+ bundle config --local build.nokogiri "${NOKOGIRI_CONFIG}"
+ bundle config --local silence_root_warning 1
+ _bundle_install "${pkg_prefix}/bundle"
+ )
+
+ build_line "Executing bundle install inside source path. ($SRC_PATH)"
+ _bundle_install "${pkg_prefix}/bundle"
+}
+
+do_install() {
+ build_line "Copying directories from source to pkg_prefix"
+ mkdir -p "${pkg_prefix}/chef"
+ for dir in bin chef-bin chef-config lib chef.gemspec Gemfile Gemfile.lock; do
+ cp -rv "${SRC_PATH}/${dir}" "${pkg_prefix}/chef/"
+ done
+
+ # If we generated them on install, bundler thinks our source is in $HAB_CACHE_SOURCE_PATH
+ build_line "Generating binstubs with the correct path"
+ ( cd "$pkg_prefix/chef" || exit_with "unable to enter pkg prefix directory" 1
+ _bundle_install \
+ "${pkg_prefix}/bundle" \
+ --local \
+ --quiet \
+ --binstubs "${pkg_prefix}/bin"
+ )
+
+ build_line "Fixing bin/ruby and bin/env interpreters"
+ fix_interpreter "${pkg_prefix}/bin/*" core/coreutils bin/env
+ fix_interpreter "${pkg_prefix}/bin/*" core/ruby26 bin/ruby
+}
+
+do_end() {
+ if [ "$(readlink /usr/bin/env)" = "$(pkg_interpreter_for core/coreutils bin/env)" ]; then
+ build_line "Removing the symlink we created for '/usr/bin/env'"
+ rm /usr/bin/env
+ fi
+}
+
+do_strip() {
+ return 0
+}
+
+# Helper function to wrap up some repetitive bundle install flags
+_bundle_install() {
+ local path
+ path="$1"
+ shift
+
+ bundle install ${*:-} \
+ --jobs "$(nproc)" \
+ --without development:test \
+ --path "$path" \
+ --shebang="$(pkg_path_for "core/ruby26")/bin/ruby" \
+ --no-clean \
+ --retry 5 \
+ --standalone
+}