Skip to content
Snippets Groups Projects
gulpfile.js 1.55 KiB
Newer Older
// Gulp.js configuration
"use strict";

const gulp = require("gulp");
const replace = require("gulp-replace");
Matthias Konitzny's avatar
Matthias Konitzny committed
const zip = require("gulp-zip");
const del = require("del");

const dir = {
    src: ".",
    build: "./release/",
};

// PHP settings
const php = {
    src: [dir.src + "/**/*.php", "!node_modules/**", "!release/**"],
    build: dir.build,
};

const parcel = {
    src: "./build/release/**",
    build: dir.build + "build/release/",
};

function clean() {
    return del(dir.build + "**", { force: true });
}

function copyPHP() {
    return gulp
        .src(php.src)
        .pipe(
            replace(
                "$GLOBALS['build'] = 'debug';",
                "$GLOBALS['build'] = 'release';"
            )
        )
        .pipe(gulp.dest(php.build));
}

function copyParcel() {
    return gulp.src(parcel.src).pipe(gulp.dest(parcel.build));
}

Matthias Konitzny's avatar
Matthias Konitzny committed
function zipBuild() {
    return gulp
        .src(dir.build + "**")
        .pipe(zip("knowledge-space.zip"))
        .pipe(gulp.dest(dir.build));
}

function copyDefaultSpace() {
    return gulp
        .src("datasets/space.json")
        .pipe(gulp.dest(dir.build + "datasets/"));
}

function copyEditorIcons() {
    return gulp
        .src("editor/images/**/*.png")
        .pipe(gulp.dest(dir.build + "editor/images/"));
}

function copyBackground() {
    return gulp
        .src("backgrounds/background_4.jpg")
        .pipe(gulp.dest(dir.build + "backgrounds/"));
}

exports.build = gulp.series(
    clean,
    copyPHP,
    copyParcel,
    copyDefaultSpace,
    copyEditorIcons,
Matthias Konitzny's avatar
Matthias Konitzny committed
    copyBackground,
    zipBuild