-
Notifications
You must be signed in to change notification settings - Fork 5
/
publish-modules.sh
91 lines (68 loc) · 2.19 KB
/
publish-modules.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/bin/bash
#
# This scripts collects all highcharts modules, and for each publishes an npm module.
#
# e.g. highcharts-more
#
#
dir="./modules/"
node_modules_dir="../node_modules/"
# Clean up first
echo "clean up."
rm -rf $dir
mkdir $dir
cd $dir
echo "folder created."
# Generate list of modules
list="../modules.md"
echo "# List of generated modules " > $list
echo "" >> $list
function generate {
# Iterate ove a list of files
for path in $@ ; do
# only get filename e.g. file.js
file="${path##*/}"
# Get rid of .src e.g file.src.js -> file.js
file=${file/.src/}
# Get rid of 'highcharts-' prefix e.g highcharts-more.js -> more.js
file=${file/highcharts-/}
name="highcharts-${file/.js/}";
if [ ! -e "./$name" ]; then
echo "Adding $name";
# extract module name from path, e.g. highcharts-release
module=${path/$node_modules_dir/}
module=${module/modules\//}
module="${module%/*}"
version="0.0.6" # $(npm info $module version)
mkdir $name
# Copy the actual JS file
cp $path $name/$file
# Copy package.json and replace the variables
packageFile="$name/package.json"
cp ../package.json.tpl $packageFile
sed -i '' "s/{name}/$name/" $packageFile
sed -i '' "s/{file}/$file/" $packageFile
sed -i '' "s/{version}/$version/" $packageFile
sed -i '' "s/{module}/$module/" $packageFile
# Copy README and replace the variables
readmeFile="$name/README.md"
cp ../README.md.tpl $readmeFile
sed -i '' "s/{name}/$name/" $readmeFile
sed -i '' "s/{file}/$file/" $readmeFile
sed -i '' "s/{version}/$version/" $readmeFile
sed -i '' "s/{module}/$module/" $readmeFile
cd $name
npm publish
cd ..
echo "## $name" >> $list
echo "[$name](https://www.npmjs.com/package/$name)"@$version >> $list
echo "" >> $list
echo "\`npm install $name\`" >> $list
echo "" >> $list
fi
done
}
generate "${node_modules_dir}highcharts-release/modules/*"
generate "${node_modules_dir}highstock-release/modules/*"
generate "${node_modules_dir}highmaps-release/modules/*"
generate "${node_modules_dir}highcharts-release/highcharts-*.js"