Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status

RSS

cpan (33) Versions 0.1.0

CPAN modules provider (cpan_client provider LWRP)

Policyfile
Berkshelf
Knife
cookbook 'cpan', '~> 0.1.0', :supermarket
cookbook 'cpan', '~> 0.1.0'
knife supermarket install cpan
knife supermarket download cpan
README
Dependencies
Changelog
Quality 17%

Build Status

DESCRIPTION

cpan modules resource provider

WARNING

The cpan cookbook seems does not work under recent versipon of chef ( since 12.5 ) and is no longer mainatained.
Feel free to fork the code and take up further development.

PREREQUISITES

A little prerequisites are required. Run cpan::bootstrap recipe to satisfy
- curl
- App::cpanminus
- CPAN
- local::lib

If you only want to run bootstrap once, set the bootstrap['keep_uptodate'] attribute to false.

BASIC USAGE

cpan_client 'CGI' do
    action 'install'
    install_type 'cpan_module'
    user 'root'
    group 'root'
end

RESOURCE ACTIONS

  • install - install module or application
  • test - test module, don't install it
  • reload_cpan_index - reload cpan client indexes

RESOURCE ATTRIBUTES

  • cwd - specifies current working directory where installation process runs, default value is /tmp/
  • dry_run - specifies whether to run installation process in dry-run mode or not, default value is false
  • environment - specifies Hash with environment variables exported to installation process
  • force - specifies whether to run installation process in force mode, default - false
  • from_cookbook - specifies cookbook, where distributive stored at. Check out chef cookbook_file resource documentation
  • user/group - specifies a user/group for installation process
  • inc - specifies perl @INC array
  • install_base - specifies installation base
  • install_path - specifies installation paths
  • install_type - specifies installation type : cpan_module, bundle, application; default - application
  • module_name - specifies the name of cpan module to check version against when install, useful when installing from http url or cookbook
  • version - specifies version of module to install, see also module_name parameter
    • if version defined as version '0' - installs only if module is not installed yet
    • if version defined as version 'version-number' - installs by version and higher
    • if version defined as version '=version-number' - installs exact version

EXAMPLES OF USAGE

fake install

cpan_client 'CGI' do
    user 'root'
    group 'root'
    dry_run true 
    install_type 'cpan_module'
    action 'install'
end

does not install, only run tests

cpan_client 'CGI' do
    user 'root'
    group 'root'
    install_type 'cpan_module'
    action 'test'
end

Bundle install

cpan_client 'Bundle::LWP' do
    user 'root'
    group 'root' 
    install_type 'bundle'
    action 'install'
end

force install

cpan_client 'CGI' do
    user 'root'
    group 'root'
    force true 
    install_type 'cpan_module'
    action 'install'
end

installs version or higher

cpan_client 'CGI' do
    user 'root'
    group 'root'
    version '3.55' 
    install_type 'cpan_module'
    action 'install'
end

installs only if module is not installed yet

cpan_client 'CGI' do
    user 'root'
    group 'root'
    version '0' 
    install_type 'cpan_module'
    action 'install'
end

installs exact version of module

# exact version installation is available only for install from cookbook or from http url

cpan_client 'http://search.cpan.org/CPAN/authors/id/M/MA/MARKSTOS/CGI.pm-3.59.tar.gz' do
    user 'root'
    group 'root'
    module_name 'CGI'
    version '=3.59'
    action 'install'
end

cpan_client 'Moose-1.24.tar.gz' do
    user 'root'
    group 'root'
    from_cookbook  'moose'
    module_name 'Moose'
    version '=1.24'
    action 'install'
end

installs distributive stored in cookbook

cpan_client 'Moose-1.24.tar.gz' do
    user 'root'
    group 'root'
    from_cookbook  'moose'
    install_type 'cpan_module'
    action 'install'
end

installs distributive stored in cookbook with version check

cpan_client 'Moose-1.24.tar.gz' do
    user 'root'
    group 'root'
    from_cookbook  'moose'
    module_name 'Moose'
    version '1.24'
    action 'install'
end

installs distributive strored remotely

# only http protocol now is supported:
cpan_client 'http://search.cpan.org/CPAN/authors/id/M/MA/MARKSTOS/CGI.pm-3.59.tar.gz' do
    user 'root'
    group 'root'
    action 'install'
end

installs distributive strored remotely with version check

cpan_client 'http://search.cpan.org/CPAN/authors/id/M/MA/MARKSTOS/CGI.pm-3.58.tar.gz' do
    user 'root'
    group 'root'
    module_name 'CGI'
    version '3.59'
    action 'install'
end

installs into given installation base

cpan_client 'CGI' do
    user 'root'
    group 'root'
    install_base '/some/where/else'
    install_type 'cpan_module'
    action 'install'
end

installs into given installation base, relative to given cwd

# will install into '/home/alex/mydir'
cpan_client 'CGI' do
    user 'root'
    group 'root'
    install_base 'mydir'
    cwd '/home/alex/'
    install_type 'cpan_module'
    action 'install'
end

installs with given install paths

# will override settings for `htdocs` and `config` elements
cpan_client 'Module' do
    user 'root'
    group 'root'
    install_path ["htdocs=#{ENV['PWD']}/htdocs/", "config=#{ENV['PWD']}/etc/"]
    install_type 'cpan_module'
    action 'install'
end

installs distributive unpacked in current working directory

cpan_client 'my application' do
    user 'root'
    group 'root'
    install_type 'application'
    action 'install'
end

installs under not privileged user

# will install into $PWD/cpanlib directory
cpan_client 'my application' do
    install_type 'application'
    user 'user'
    group 'users'
    install_base 'cpanlib'  
    action 'install'
end

reloads cpan indexes

cpan_client 'reload cpan index' do
    user 'user'
    group 'users'
    action 'reload_cpan_index'
end

Features

Other examples (cucumber features) may be found at cpan-test project

Dependent cookbooks

This cookbook has no specified dependencies.

Contingent cookbooks

oracle-instantclient Applicable Versions
rackmonkey Applicable Versions

0.1.0

  • Update license #33

0.0.37

  • Fixing my change log

0.0.36

  • occasional syntax error fixed, thanks to @redterror

0.0.35

  • merged PR by @abadelt to fix undefined methodcpan_client' after update to Chef 13 ` error - #3

version 0.0.31

  • Fix the order of parameters to Iconv#initialize - by ippeif, MR - pull/17

version 0.0.30

  • bootstrap recipe now can be run in skip_uptodate mode, thanks to phoolish, merged pull/17

version 0.0.29

  • bootstrap recipe: added centos relate package pull/16, thanks to phoolish

version 0.0.28

  • berkshelf / minitest chef infrastructure has been added
  • messages 'won't install without force' in log file should turn into exception

version 0.0.27

  • cpan::bootstrap have been made multiplatforms - todo
  • centos platform now is supported - todo

version 0.0.26

version 0.0.25

version 0.0.24

  • workaround for invalid byte sequence in UTF-8

version 0.0.23

  • fix for unstrusted string hanlding commented (does not work for ruby 1.8.*)
  • reload index action implemented now by reload index cpan client command
  • bootstrap list minimized

version 0.0.22

  • replace Iconv by encode
  • do not turn 'ERRORS/WARNINGS FOUND IN PREREQUISITES' into exception

version 0.0.21

version 0.0.20

  • cpan::bootstrap - added some vital Modules
  • cpan_client - handling untrusted strings with Iconv when grep cpan logs

version 0.0.19

  • default value for cwd is '/tmp/'

version 0.0.18

  • installs exact version now available

version 0.0.17

  • a big refactoring
  • module_name parameter added
  • version check when doing install from cookbook/url
  • documentation cleaned up

version 0.0.16

  • небольшой рефакторинг кода

version 0.0.15

  • install from remote tarball by http/ftp url

version 0.0.14

  • raise exception if found "Stopping: 'install' failed" in install_log - workaround for https://github.com/andk/cpanpm/issues/32
  • does rm -rf "/tmp/local-lib/install/#{installed_module}" in install from tarball to delete already unpacked distro
  • bugfix : user, group added to :action test

version 0.0.13

  • install summary:
    • improved, fixed and simplified

version 0.0.12

  • cpan-client: redirect stderr to stdout
  • made logs more clear

version 0.0.11

  • add cucumber features
  • bugfix for install_path cases

version 0.0.10

  • bugfix : before install create /tmp/local-lib/install directory

version 0.0.9

  • add documentation

version 0.0.8

  • .modulebuildrc create in :install action instead of cpan::default recipe
  • add cpan_home optional attribute
  • create '/tmp/local_lib/' before doing install

version 0.0.7

  • bugfix for install from tarball (forgot about cwd while refactoring)

version 0.0.6

  • replace execute resource by bash resources for less verbosity in logs
  • improve after-install summary

version 0.0.5

  • compact log messages

version 0.0.4

  • log messages are neat and at different levels
  • big fix for access to log files

Collaborator Number Metric
            

0.1.0 failed this metric

Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.

Contributing File Metric
            

0.1.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file

Foodcritic Metric
            

0.1.0 failed this metric

FC016: LWRP does not declare a default action: cpan/resources/client.rb:1
FC064: Ensure issues_url is set in metadata: cpan/metadata.rb:1
FC065: Ensure source_url is set in metadata: cpan/metadata.rb:1
FC066: Ensure chef_version is set in metadata: cpan/metadata.rb:1
FC085: Resource using new_resource.updated_by_last_action to converge resource: cpan/providers/client.rb:247
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any

No Binaries Metric
            

0.1.0 passed this metric

Testing File Metric
            

0.1.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file

Version Tag Metric
            

0.1.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number