summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorTim Zallmann <tzallmann@gitlab.com>2017-09-22 08:39:47 +0000
committerPhil Hughes <me@iamphill.com>2017-09-22 08:39:47 +0000
commit55f772bb98a67ad346442a2cacb5646f6719b987 (patch)
treefdcda42d5ee9c746b5654a50fa88a0fd1464d3a8 /config
parentd103e95513704314a38ab8ae441851524031c4a1 (diff)
downloadgitlab-ce-55f772bb98a67ad346442a2cacb5646f6719b987.tar.gz
Resolve "Better SVG Usage in the Frontend"
Diffstat (limited to 'config')
-rw-r--r--config/dependency_decisions.yml12
-rw-r--r--config/svg.config.js48
-rw-r--r--config/webpack.config.js1
3 files changed, 61 insertions, 0 deletions
diff --git a/config/dependency_decisions.yml b/config/dependency_decisions.yml
index 6c5c8cad270..db31b01a7d2 100644
--- a/config/dependency_decisions.yml
+++ b/config/dependency_decisions.yml
@@ -452,3 +452,15 @@
:why: https://github.com/jaredhanson/utils-merge/blob/v1.0.0/LICENSE
:versions: []
:when: 2017-09-16 05:18:26.193764000 Z
+- - :approve
+ - svg4everybody
+ - :who: Tim Zallmann
+ :why: CC0 1.0 - https://github.com/jonathantneal/svg4everybody/blob/master/LICENSE.md
+ :versions: []
+ :when: 2017-09-13 17:31:16.425819400 Z
+- - :approve
+ - gitlab-svgs
+ - :who: Tim Zallmann
+ :why: Our own library - https://gitlab.com/gitlab-org/gitlab-svgs
+ :versions: []
+ :when: 2017-09-19 14:36:32.795496000 Z
diff --git a/config/svg.config.js b/config/svg.config.js
new file mode 100644
index 00000000000..be72741abec
--- /dev/null
+++ b/config/svg.config.js
@@ -0,0 +1,48 @@
+/* eslint-disable no-commonjs */
+const path = require('path');
+const fs = require('fs');
+
+const sourcePath = path.join('node_modules', 'gitlab-svgs', 'dist');
+const sourcePathIllustrations = path.join('node_modules', 'gitlab-svgs', 'dist', 'illustrations');
+const destPath = path.normalize(path.join('app', 'assets', 'images'));
+
+// Actual Task copying the 2 files + all illustrations
+copyFileSync(path.join(sourcePath, 'icons.svg'), destPath);
+copyFileSync(path.join(sourcePath, 'icons.json'), destPath);
+copyFolderRecursiveSync(sourcePathIllustrations, destPath);
+
+// Helper Functions
+function copyFileSync(source, target) {
+ var targetFile = target;
+ //if target is a directory a new file with the same name will be created
+ if (fs.existsSync(target)) {
+ if (fs.lstatSync(target).isDirectory()) {
+ targetFile = path.join(target, path.basename(source));
+ }
+ }
+ console.log(`Copy SVG File : ${targetFile}`);
+ fs.writeFileSync(targetFile, fs.readFileSync(source));
+}
+
+function copyFolderRecursiveSync(source, target) {
+ var files = [];
+
+ //check if folder needs to be created or integrated
+ var targetFolder = path.join(target, path.basename(source));
+ if (!fs.existsSync(targetFolder)) {
+ fs.mkdirSync(targetFolder);
+ }
+
+ //copy
+ if (fs.lstatSync(source).isDirectory()) {
+ files = fs.readdirSync(source);
+ files.forEach(function (file) {
+ var curSource = path.join(source, file);
+ if (fs.lstatSync(curSource).isDirectory()) {
+ copyFolderRecursiveSync(curSource, targetFolder);
+ } else {
+ copyFileSync(curSource, targetFolder);
+ }
+ });
+ }
+}
diff --git a/config/webpack.config.js b/config/webpack.config.js
index 6b0cd023291..3404715fe30 100644
--- a/config/webpack.config.js
+++ b/config/webpack.config.js
@@ -45,6 +45,7 @@ var config = {
group: './group.js',
groups: './groups/index.js',
groups_list: './groups_list.js',
+ help: './help/help.js',
how_to_merge: './how_to_merge.js',
issue_show: './issue_show/index.js',
integrations: './integrations',