2
2
set -e
3
3
4
4
5
- usage () {
6
- echo " Uber package Builder"
7
- echo " ------------------------"
8
- echo " ./uber-pacakge-builder.sh NAME LOCAL_NPM_PACKAGE_LOCATION"
9
- echo " " }
5
+ # usage() {
6
+ # echo "Uber package Builder"
7
+ # echo "------------------------"
8
+ # echo "./uber-pacakge-builder.sh NAME LOCAL_NPM_PACKAGE_LOCATION"
9
+ # echo ""}
10
10
11
11
12
- if [[ " $# " -lt 3 ]]; then
13
- usage
14
- exit 1
15
- fi
12
+ # if [[ "$#" -lt 2 ]]; then
13
+ # usage
14
+ # exit 1
15
+ # fi
16
16
17
- name=" ${1} "
18
- runtime=" ${2} "
19
- dist_folder=" ${3} "
20
-
21
- if test -d " $dist_folder " ; then
22
- packages=" ${@: 4} "
23
- else
24
- dist_folder=" "
25
- packages=" ${@: 3} "
26
- fi
17
+ name=$( basename ${1} )
18
+ dist_folder=" ${2} "
27
19
20
+ echo " Will bundle $( ls ${dist_folder} ) into ${dist_folder} /${name} .tgz from ${PWD} "
28
21
29
22
output_folder=" $( mktemp -d) "
30
23
31
24
echo " $output_folder is the output folder"
32
25
33
- docker_image=" public.ecr.aws/sam/build-$runtime :latest"
34
- volume_params=" -v $output_folder :/layer"
35
-
36
- if [[ $runtime == node* ]]; then
37
-
38
- package_folder=" nodejs/"
39
- mkdir -p " $output_folder /$package_folder "
40
- if [[ -n " $dist_folder " ]]; then
41
- cp -r " $dist_folder " " $output_folder /$package_folder /"
42
- fi
43
- install_command=" pushd $package_folder ; npm install; npm install --save $packages ; popd"
44
- volume_params=" $volume_params -v $HOME /.npmrc:/root/.npmrc"
45
-
46
- elif [[ $runtime == python* ]]; then
47
-
48
- package_folder=" python/lib/$runtime /site-packages/"
49
- if [[ -n " $dist_folder " ]]; then
50
- cp " $dist_folder " " $output_folder /requirements.txt"
51
- else
52
- touch " $output_folder /requirements.txt"
53
- fi
54
-
55
- install_command=" pip install -r requirements.txt -t $package_folder $packages "
56
- volume_params=" $volume_params -v $HOME /.config/pip:/root/.config/pip"
57
-
58
- else
59
-
60
- usage
61
- exit 1
26
+ docker_image=" public.ecr.aws/sam/build-nodejs14.x:latest"
27
+ volume_params=" -v $output_folder :/bundle"
62
28
63
- fi
29
+ package_folder=" nodejs/"
30
+ mkdir -p " $output_folder /$package_folder "
64
31
32
+ cp -r " ${2} " " $output_folder /$package_folder /"
33
+
34
+ install_command=" pushd $package_folder ; npm install --save ./*.tgz; popd"
35
+ volume_params=" $volume_params -v $HOME /.npmrc:/root/.npmrc"
65
36
66
- echo " Building layer "
67
- zip_command=" zip -r layer .zip * && rm -rf $package_folder "
37
+ # echo "Building bundle: docker run --rm $volume_params -w "/bundle" "$docker_image" /bin/bash -c "$install_command && $zip_command" "
38
+ zip_command=" zip -r bundle .zip * && rm -rf $package_folder "
68
39
69
- docker run --rm $volume_params -w " /layer " " $docker_image " /bin/bash -c " $install_command && $zip_command "
40
+ docker run --rm $volume_params -w " /bundle " " $docker_image " /bin/bash -c " $install_command && $zip_command "
70
41
42
+ mv " $output_folder /bundle.zip" " $dist_folder /$name .zip"
71
43
72
- mv " $output_folder /layer.zip " " $dist_folder / $name .zip "
44
+ rm -rf $output_folder
73
45
74
- echo " All done. Enjoy your shiny new Lambda layer in $output_folder ! "
46
+ echo " All done"
0 commit comments