diff options
author | Salim Afiune <afiune@chef.io> | 2019-08-02 09:53:34 +0200 |
---|---|---|
committer | Salim Afiune <afiune@chef.io> | 2019-08-02 09:53:34 +0200 |
commit | a6acfe338b4b650a8c8a4336d346a05036d21fcb (patch) | |
tree | 489ab0934ebc324c0cf777cee280f82dfd21ba0a | |
parent | 3284e9067aacbe42f96afc78b06e523b46b98d2f (diff) | |
download | chef-a6acfe338b4b650a8c8a4336d346a05036d21fcb.tar.gz |
Cleanup habitat/plan.sh for chef-infra-client
Signed-off-by: Salim Afiune <afiune@chef.io>
-rw-r--r-- | habitat/chef-infra-client/plan.sh | 132 | ||||
-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.sh | 149 |
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 +} |