HEX
Server: Apache
System: Linux mare-tim-wwwmocrea 6.8.12-9-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-9 (2025-03-16T19:18Z) x86_64
User: www-data (33)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/www.mocrea.it/wp-content/themes/ottar/assets/gulp/gulpfile.js
// Include gulp
var gulp = require('gulp');
var path = require('path');
var browserSync = require('browser-sync').create();

// Include Plugins
var jshint = require('gulp-jshint');
var sass = require('gulp-sass');
var sassGlob = require('gulp-sass-glob');
var sourcemaps = require('gulp-sourcemaps');
var concat = require('gulp-concat');
var concatCss = require('gulp-concat-css');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var cssmin = require('gulp-clean-css');

var themePlugins = [
    'core',
    'instagram-feed',
    'twitter-feed'
];

var themePluginsJSTasks = [];
var themePluginsSASSTasks = [];
var themePluginsJSSources = [];
var themePluginsSASSDefaultSources = [];
var themePluginsSASSResponsiveSources = [];
themePlugins.forEach(function (name) {
    themePluginsJSTasks.push(name + '-js');
    themePluginsSASSTasks.push(name + '-sass');
});

// Concatenate theme plugins js and scss files
themePlugins.forEach(function (name) {
    themePluginsJSSources.push('../../../../plugins/ottar-' + name + '/assets/js/*.js');
    themePluginsSASSDefaultSources.push('../../../../plugins/ottar-' + name + '/assets/css/*-map.css');
    themePluginsSASSResponsiveSources.push('../../../../plugins/ottar-' + name + '/assets/css/*-map-responsive.css');

    gulp.task(name + '-js', function () {
        return gulp.src([
            '../../../../plugins/ottar-' + name + '/**/assets/js/modules/*.js'
        ])
            .pipe(concat(name + '.js'))
            .pipe(gulp.dest('../../../../plugins/ottar-' + name + '/assets/js'))
    });

    gulp.task(name + '-sass', function () {
        return gulp.src('../../../../plugins/ottar-' + name + '/assets/css/scss/*.scss')
            .pipe(sourcemaps.init({loadMaps: true}))
            .pipe(sassGlob())
            .pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
            .pipe(sourcemaps.write('../../../../plugins/ottar-' + name + '/assets/css'))
            .pipe(gulp.dest('../../../../plugins/ottar-' + name + '/assets/css'))
    });
});

// Call all theme plugins js tasks
gulp.task('theme-plugins-js', gulp.parallel(themePluginsJSTasks));

// Call all theme plugins sass tasks
gulp.task('theme-plugins-sass', gulp.parallel(themePluginsSASSTasks));

// Concatenate theme js files
gulp.task('theme-modules-js', function () {
    return gulp.src([
        '../../framework/modules/**/assets/js/*.js'
    ])
        .pipe(concat('theme-modules-js.js'))
        .pipe(gulp.dest(function (file) {
            var fileBase = file.cwd;
            fileBase = fileBase.replace('gulp', 'js\\modules\\theme-modules');

            return fileBase;
        }));
});

// Concatenate theme js files and minify it
gulp.task('js', gulp.series('theme-modules-js', 'theme-plugins-js', function () {
    themePluginsJSSources.unshift('../js/modules/*.js', '../js/modules/theme-modules/*.js');

    return gulp.src(themePluginsJSSources)
    .pipe(concat('modules.js'))
    .pipe(gulp.dest('../js'))
    .pipe(uglify())
    .pipe(rename({suffix: '.min'}))
    .pipe(gulp.dest('../js'));
}));

// Concatenate theme js files
gulp.task('theme-modules-sass', function () {
    return gulp.src([
        '../../framework/modules/**/assets/css/scss/*.scss',
        '!../../framework/modules/woocommerce{,/**}'
    ])
        .pipe(sourcemaps.init({loadMaps: true}))
        .pipe(sassGlob())
        .pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
        .pipe(sourcemaps.write('.', {
            includeContent: false,
            sourceRoot: function (file) {
                return '../css';
            }
        }))
        .pipe(rename(function (file) {
            // this removes the last parent directory of the relative file path
            file.dirname = path.dirname(file.dirname);
        }))
        .pipe(gulp.dest('../../framework/modules'));
});

// Compile Theme Sass
gulp.task('sass', function () {
    return gulp.src('../css/scss/*.scss')
        .pipe(sourcemaps.init({loadMaps: true}))
        .pipe(sassGlob())
        .pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
        .pipe(sourcemaps.write('../css'))
        .pipe(gulp.dest('../css'))
        .pipe(browserSync.stream({match: '**/*.css'}));
});

//Concate default core, header and theme css files
gulp.task('concat-modules-css', gulp.series('sass', gulp.parallel('theme-plugins-sass', 'theme-modules-sass'), function () {
    themePluginsSASSDefaultSources.unshift('../css/modules.css', '../../framework/modules/**/assets/css/*-map.css');

    return gulp.src(themePluginsSASSDefaultSources)
    .pipe(concatCss('../css/modules.css'))
    .pipe(gulp.dest('../css'));
}));

// Concate responsive core, header and theme css files
gulp.task('concat-modules-css-responsive', function () {
    themePluginsSASSResponsiveSources.unshift('../css/modules-responsive.css', '../../framework/modules/**/assets/css/*-map-responsive.css');

    return gulp.src(themePluginsSASSResponsiveSources)
        .pipe(concatCss('../css/modules-responsive.css'))
        .pipe(gulp.dest('../css'));
});

// Compile Woo Sass
gulp.task('woo-sass', function () {
    return gulp.src('../../framework/modules/woocommerce/assets/css/scss/*.scss')
        .pipe(sourcemaps.init({loadMaps: true}))
        .pipe(sassGlob())
        .pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
        .pipe(sourcemaps.write('../css'))
        .pipe(gulp.dest('../css'));
});

//Minify css files
gulp.task('minifycss', gulp.series('concat-modules-css', gulp.parallel('concat-modules-css-responsive', 'woo-sass'), function () {
    return gulp.src([
        '../css/modules.css',
        '../css/modules-responsive.css',
        '../css/woocommerce.css',
        '../css/woocommerce-responsive.css'
    ])
    .pipe(cssmin())
    .pipe(rename({suffix: '.min'}))
    .pipe(gulp.dest('../css'))
    .pipe(browserSync.stream());
}));

// Minify JS
gulp.task('minifyjs', gulp.parallel('js'));

// Minify Files
gulp.task('minify', gulp.parallel('minifyjs', 'minifycss'));

// Watch Files For Changes
gulp.task('watch', function () {
    gulp.watch([
        '../../../../plugins/ottar-*/**/assets/css/scss/**/*.scss',
        '../../framework/modules/**/assets/css/scss/**/*.scss',
        '../css/scss/**/*.scss'
    ], gulp.series('minifycss'));
    gulp.watch([
        '../../../../plugins/ottar-*/**/assets/js/modules/*.js',
        '../../framework/modules/**/assets/js/*.js',
        '../js/modules/*.js'
    ], gulp.series('minifyjs'));
});

// Watch with browser sync
gulp.task('dev', function () {
    browserSync.init({
        proxy: 'ottar.test'
    });

    gulp.watch([
        '../../../../plugins/ottar-*/**/assets/css/scss/**/*.scss',
        '../../framework/modules/**/assets/css/scss/**/*.scss',
        '../css/scss/**/*.scss'
    ], gulp.series('minifycss'));
    gulp.watch([
        '../../../../plugins/ottar-*/**/assets/js/modules/*.js',
        '../../framework/modules/**/assets/js/*.js',
        '../js/modules/*.js'
    ], gulp.series('minifyjs'));
});

// Lint Task
gulp.task('lint', function () {
    return gulp.src([
        '../js/modules.js',
    ])
        .pipe(jshint())
        .pipe(jshint.reporter('js'));
});