kopia lustrzana https://github.com/c9/core
117 wiersze
3.1 KiB
Bash
117 wiersze
3.1 KiB
Bash
_d9_package_sync_workdir_docker() {
|
|
local WORKDIR=$1
|
|
local VERSION=$2
|
|
local SETTINGS=$3
|
|
local SOURCE=$WORKDIR/source
|
|
|
|
pushd $WORKDIR &> /dev/null
|
|
|
|
_b9_package_docker_init_source $WORKDIR $SOURCE $VERSION $SETTINGS
|
|
_b9_package_docker_init_workdir
|
|
|
|
_b9_init_node_helper
|
|
_b9_package_docker_node_modules $WORKDIR $SOURCE $SETTINGS
|
|
_b9_package_docker_generate_settings $WORKDIR $SOURCE $SETTINGS
|
|
_b9_package_docker_include_files $WORKDIR $SOURCE $SETTINGS
|
|
_b9_package_docker_copy_plugins $WORKDIR $SOURCE $SETTINGS
|
|
|
|
rm -rf $SOURCE
|
|
|
|
popd &> /dev/null
|
|
}
|
|
|
|
_b9_package_docker_init_source() {
|
|
local WORKDIR=$1
|
|
local SOURCE=$2
|
|
local VERSION=$3
|
|
local SETTINGS=$4
|
|
|
|
rm -rf $WORKDIR
|
|
mkdir -p $SOURCE
|
|
|
|
_d9_package_sync_workdir_newclient $SOURCE $VERSION $SETTINGS
|
|
_d9_package_npm_install $SOURCE
|
|
}
|
|
|
|
_b9_package_docker_init_workdir() {
|
|
mkdir -p plugins
|
|
mkdir -p node_modules
|
|
mkdir -p settings
|
|
mkdir -p configs
|
|
}
|
|
|
|
_b9_package_docker_node_modules() {
|
|
local WORKDIR=$1
|
|
local SOURCE=$2
|
|
local SETTINGS=$3
|
|
local NODE_MODULES
|
|
local MODULE
|
|
|
|
NODE_PATH=$B9_DIR/lib/js/node_modules $NODEJS $B9_DIR/lib/js/filter_node_modules.js docker --targetFile=$WORKDIR/package.json --source=$SOURCE --settings=$SETTINGS
|
|
|
|
NODE_MODULES=$(cat $WORKDIR/package.json | jq -r '.dependencies | keys | @sh')
|
|
|
|
mkdir -p $WORKDIR/node_modules
|
|
for MODULE in $NODE_MODULES; do
|
|
MODULE=${MODULE:1:-1}
|
|
if [ -d $SOURCE/node_modules/$MODULE ]; then
|
|
cp -a $SOURCE/node_modules/$MODULE $WORKDIR/node_modules
|
|
fi
|
|
done
|
|
|
|
pushd $WORKDIR &> /dev/null
|
|
_b9_npm "$WORKDIR" install
|
|
|
|
popd &> /dev/null
|
|
}
|
|
|
|
_b9_package_docker_generate_settings() {
|
|
local WORKDIR=$1
|
|
local SOURCE=$2
|
|
local SETTINGS=$3
|
|
|
|
$NODEJS $B9_DIR/lib/js/generate_settings.js docker --targetFile=$WORKDIR/settings/$SETTINGS.js --source=$SOURCE --settings=$SETTINGS
|
|
}
|
|
|
|
_b9_package_docker_include_files() {
|
|
local WORKDIR=$1
|
|
local SOURCE=$2
|
|
local SETTINGS=$3
|
|
|
|
local BUILD_CONFIG
|
|
local FILE_MODULES_INCLUDE
|
|
local PATTERN
|
|
|
|
pushd $WORKDIR &> /dev/null
|
|
|
|
BUILD_CONFIG=$($NODEJS -e "console.log(JSON.stringify(require('$SOURCE/configs/docker').buildConfig({mode: '$SETTINGS'})))")
|
|
FILE_INCLUDE=$(echo $BUILD_CONFIG | jq -r '.fileInclude | @sh')
|
|
|
|
for PATTERN in $FILE_INCLUDE; do
|
|
PATTERN=${PATTERN:1:-1}
|
|
mkdir -p $(dirname $PATTERN)
|
|
cp -a -R $SOURCE/$PATTERN $(dirname $PATTERN)
|
|
done
|
|
|
|
for PATTERN in "server.js" "scripts/tail-log.sh" "configs/docker.js"; do
|
|
mkdir -p $(dirname $PATTERN)
|
|
cp -a -R $SOURCE/$PATTERN $(dirname $PATTERN) || :
|
|
done
|
|
|
|
popd &> /dev/null
|
|
}
|
|
|
|
_b9_package_docker_copy_plugins() {
|
|
local WORKDIR=$1
|
|
local SOURCE=$2
|
|
local SETTINGS=$3
|
|
|
|
local PLUGINS
|
|
local PLUGIN
|
|
|
|
PLUGINS=$($NODEJS $B9_DIR/lib/js/list_plugins.js docker --source=$SOURCE --settings=$SETTINGS)
|
|
for PLUGIN in $PLUGINS; do
|
|
cp -a $SOURCE/plugins/$PLUGIN $WORKDIR/plugins
|
|
done
|
|
}
|