HEX
Server: LiteSpeed
System: Linux sinope.sitehostingserver.com 5.14.0-611.49.2.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Apr 30 09:05:08 EDT 2026 x86_64
User: aprilnet (1155)
PHP: 8.2.32
Disabled: popen,imap_mail,exec,passthru,system,shell_exec,proc_open,pcntl_exec,eval,allow_url_fopen,allow_url_include,mail,proc_get_status,get_cfg_var,disk_free_space,disk_total_space,diskfreespace,getmygid,getmyinode,getmypid,geymyuid,proc_nice,proc_terminate,proc_close,apache_child_terminate,chown,lchgrp,lchown,link,readlink,highlight_file,show_source,php_strip_whitespace,get_meta_tags,dl,leak,pfsockopen,event_new,pcntl_signal,pcntl_alarm,register_tick_function,apache_setenv,define_syslog_variables,escapeshellarg,escapeshellcmd,ini_alter,ini_restore,inject_code,openlog,syslog,xmlrpc_entity_decode,phpAds_remoteInfo,phpAds_XmlRpc,phpAds_xmlrpcDecode,phpAds_xmlrpcEncode,chgrp,php_eval,safe_dir,root,ftok,egy_perl,symlink,wscript
Upload Files
File: /home/aprilnet/public_html/sciohost.org/wp-content/plugins/cookie-law-info/lite/admin/build-dev.js
const fs = require('fs-extra');
const path = require('path');
const { execSync } = require('child_process');
const chokidar = require('chokidar');

const root = path.resolve(__dirname); // = /lite/admin
const vueCli = path.resolve(root, 'node_modules/.bin/vue-cli-service');

const distDev = path.join(root, 'dist-dev');
const distProd = path.join(root, 'dist-prod');
const distFinal = path.join(root, 'dist');

let isBuilding = false;
let queued = false;

async function build() {
  if (isBuilding) {
    queued = true;
    return;
  }

  isBuilding = true;
  try {
    console.log('\n๐Ÿ› ๏ธ Building dev (expanded)...');
    execSync(`${vueCli} build --mode development --dest "${distDev}"`, {
      cwd: root,
      stdio: 'inherit'
    });

    console.log('๐Ÿ› ๏ธ Building prod (minified)...');
    execSync(`${vueCli} build --mode production --dest "${distProd}"`, {
      cwd: root,
      stdio: 'inherit'
    });

    console.log('๐Ÿงช Running webpack-lite build...');
    execSync('yarn run build-webpack-lite', {
      cwd: root,
      stdio: 'inherit'
    });

    console.log('๐Ÿ”— Merging into final dist/...');
    await fs.emptyDir(distFinal);
    for (const src of [distDev, distProd]) {
      if (await fs.pathExists(src)) {
        await fs.copy(src, distFinal, { overwrite: true });
        console.log(`โœ”๏ธ Merged from: ${src}`);
      }
    }

    await fs.remove(distDev);
    await fs.remove(distProd);

    console.log('๐ŸŽ‰ Final dist created at:', distFinal);
  } catch (err) {
    console.error('โŒ Build failed:', err);
  } finally {
    isBuilding = false;
    if (queued) {
      queued = false;
      build(); // run again if a change occurred mid-build
    }
  }
}

function watchAndRebuild() {
  console.log('๐Ÿ‘€ Watching for changes in src/...');
  chokidar.watch(path.join(root, 'src'), { ignoreInitial: true })
    .on('all', (event, filePath) => {
      console.log(`๐Ÿ”„ ${event} detected in ${filePath}`);
      build();
    });
}

build();
watchAndRebuild();