Skip to content

Instantly share code, notes, and snippets.

@silvioq
Last active August 29, 2015 14:19
Show Gist options
  • Save silvioq/e7e6da002e3ff67115f8 to your computer and use it in GitHub Desktop.
Save silvioq/e7e6da002e3ff67115f8 to your computer and use it in GitHub Desktop.
Config pm for CPAN on openshift
#!/bin/bash
read -p "Enter your app name: " APP
if [ q$APP == q ] ; then
echo "No app ... aborting"
exit 1
fi
rhc create-app -t diy-0.1 -a $APP
export APPSHOW=`rhc app-show -a $APP`
export APPSSH=`echo "$APPSHOW" | grep SSH | cut -d ":" -f 2 | xargs echo`
export APPGIT=`echo "$APPSHOW" | grep "Git URL" | cut -d ":" -f 2-3 | xargs echo`
# install perl modules
ssh $APPSSH "curl -s https://gist.githubusercontent.com/silvioq/e7e6da002e3ff67115f8/raw/47fce975539bc3eb3263ca2e7cdd9b080aff213a/myconfig-creator.sh | bash -s"
# Echo example
git clone https://github.com/silvioq/echo-example-app.git
cd echo-example-app
git remote add openshift -f $APPGIT
git merge openshift/master -m "Merging openshift"
#
# Hook modification
cat > .openshift/action_hooks/start <<EOF
#!/bin/bash
# The logic to start up your application should be put in this
# script. The application will work only if it binds to
# \$OPENSHIFT_DIY_IP:8080
export PERL5LIB=\$OPENSHIFT_DATA_DIR/modperl/lib/perl5/
export HOME=\$OPENSHIFT_DATA_DIR
nohup perl \$OPENSHIFT_REPO_DIR/diy/echo.pl daemon \
-m production \
-l http://\$OPENSHIFT_DIY_IP:\$OPENSHIFT_DIY_PORT \
|& /usr/bin/logshifter -tag diy &
EOF
cat > .openshift/action_hooks/stop <<EOF
#!/bin/bash
source \$OPENSHIFT_CARTRIDGE_SDK_BASH
# The logic to stop your application should be put in this script.
if [ -z "\$(ps -ef | grep echo.pl | grep -v grep)" ]
then
client_result "Application is already stopped"
else
kill \`ps -ef | grep echo.pl | grep -v grep | awk '{ print \$2 }'\` > /dev/null 2>&1
fi
EOF
git commit -am "Hooks modification"
git rm diy/index.html diy/testrubyserver.rb
git commit -m "Removes unuseful files"
git push openshift master
#!/bin/bash
if [ ! -d $OPENSHIFT_DATA_DIR/.cpan ]; then
mkdir $OPENSHIFT_DATA_DIR/.cpan
fi;
if [ ! -d $OPENSHIFT_DATA_DIR/.cpan/CPAN ]; then
mkdir $OPENSHIFT_DATA_DIR/.cpan/CPAN
fi;
cat > $OPENSHIFT_DATA_DIR/.cpan/CPAN/MyConfig.pm << EOF
\$CPAN::Config = {
'auto_commit' => q[0],
'build_cache' => q[5],
'build_dir' => q[$OPENSHIFT_DATA_DIR/.cpan/build],
'build_requires_install_policy' => q[yes],
'cache_metadata' => q[1],
'check_sigs' => q[0],
'commandnumber_in_prompt' => q[1],
'connect_to_internet_ok' => q[0],
'cpan_home' => q[$OPENSHIFT_DATA_DIR/data/.cpan],
'dontload_hash' => { },
'ftp' => q[/usr/bin/ftp],
'ftp_passive' => q[1],
'ftp_proxy' => q[],
'getcwd' => q[cwd],
'gzip' => q[/usr/bin/gzip],
'halt_on_failure' => q[0],
'histfile' => q[$OPENSHIFT_DATA_DIR/.cpan/histfile],
'histsize' => q[100],
'http_proxy' => q[],
'inactivity_timeout' => q[0],
'index_expire' => q[1],
'inhibit_startup_message' => q[0],
'keep_source_where' => q[$OPENSHIFT_DATA_DIR/.cpan/sources],
'load_module_verbosity' => q[v],
'lynx' => q[ ],
'make' => q[/usr/bin/make],
'make_arg' => q[],
'make_install_arg' => q[],
'make_install_make_command' => q[/usr/bin/make],
'makepl_arg' => q[PREFIX=$OPENSHIFT_DATA_DIR/modperl/ SITELIBEXP=$OPENSHIFT_DATA_DIR/modperl/lib/perl5 LIB=$OPENSHIFT_DATA_DIR/modperl/lib/perl5 INSTALLMAN1DIR=$OPENSHIFT_DATA_DIR/modperl/share/man/man1 INSTALLMAN3DIR=$OPENSHIFT_DATA_DIR/modperl/share/man/man3 INSTALLSITEMAN1DIR=$OPENSHIFT_DATA_DIR/modperl/share/man/man1 INSTALLSITEMAN3DIR=$OPENSHIFT_DATA_DIR/modperl/share/man/man3],
'mbuild_arg' => q[],
'mbuild_install_arg' => q[],
'mbuild_install_build_command' => q[./Build],
'mbuildpl_arg' => q[--install_base $OPENSHIFT_DATA_DIR/modperl],
'ncftp' => q[ ],
'ncftpget' => q[ ],
'no_proxy' => q[],
'pager' => q[less],
'perl5lib_verbosity' => q[v],
'prefer_installer' => q[MB],
'prerequisites_policy' => q[follow],
'proxy_user' => q[],
'scan_cache' => q[atstart],
'shell' => q[/bin/sh],
'show_upload_date' => q[0],
'tar' => q[/usr/bin/tar],
'tar_verbosity' => q[v],
'term_is_latin' => q[0],
'term_ornaments' => q[1],
'trust_test_report_history' => q[0],
'unzip' => q[/usr/bin/unzip],
'urllist' => [q[http://cpan.llarian.net/], q[ftp://cpan.nas.nasa.gov/pub/perl/CPAN/], q[ftp://cpan.pair.com/pub/CPAN/], q[ftp://ftp.duke.edu/pub/perl/], q[ftp://ftp.cs.colorado.edu/pub/perl/CPAN/], q[ftp://ftp.sunsite.utk.edu/pub/CPAN/], q[http://www.perl.com/CPAN/]],
'use_sqlite' => q[0],
'wait_list' => [q[wait://ls6.informatik.uni-dortmund.de:1404]],
'wget' => q[/usr/bin/wget],
'yaml_load_code' => q[0],
};
1;
__END__
EOF
echo "################################################"
echo "Starting Mojolicious installation"
echo "################################################"
PERL5LIB=$OPENSHIFT_DATA_DIR/modperl/lib/perl5 HOME=$OPENSHIFT_DATA_DIR cpan -i Time::HiRes
PERL5LIB=$OPENSHIFT_DATA_DIR/modperl/lib/perl5 HOME=$OPENSHIFT_DATA_DIR cpan -f -i Mojolicious
echo "################################################"
echo ""
echo ""
echo "Mojo version installed: " `PERL5LIB=$OPENSHIFT_DATA_DIR/modperl/lib/perl5 perl -e "print \\$Mojolicious::VERSION . \"\\n\"" -MMojolicious`
echo "################################################"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment