From f41763b0b9b9d2e0abda7f0244e05a1d08abdfaa Mon Sep 17 00:00:00 2001
From: Matiss Janis Aboltins <matiss@mja.lv>
Date: Thu, 29 Jun 2023 19:25:54 +0100
Subject: [PATCH] :fire:  remove unused scripts; simplify version script
 (#1227)

1. Removed some more unused scripts
2. Simplified the way we build `version` in to the source
---
 packages/desktop-client/bin/build-browser     |   5 +-
 packages/desktop-client/bin/watch-browser     |   3 -
 .../src/browser-preload.browser.js            |   4 +-
 packages/loot-core/bin/get-db-schema          |  35 ------
 packages/loot-core/bin/migrate.js             |   2 -
 packages/loot-core/bin/profile-sql.js         | 118 ------------------
 packages/loot-core/bin/sql-regenerate-views   |  26 ----
 upcoming-release-notes/1227.md                |   6 +
 8 files changed, 10 insertions(+), 189 deletions(-)
 delete mode 100644 packages/loot-core/bin/get-db-schema
 delete mode 100755 packages/loot-core/bin/migrate.js
 delete mode 100755 packages/loot-core/bin/profile-sql.js
 delete mode 100755 packages/loot-core/bin/sql-regenerate-views
 create mode 100644 upcoming-release-notes/1227.md

diff --git a/packages/desktop-client/bin/build-browser b/packages/desktop-client/bin/build-browser
index 605fe5244..37fddd17f 100755
--- a/packages/desktop-client/bin/build-browser
+++ b/packages/desktop-client/bin/build-browser
@@ -3,16 +3,13 @@
 ROOT=`dirname $0`
 cd "$ROOT/.."
 
-VERSION=`cat "$ROOT/../../desktop-client/package.json" | grep version | head -n1 | awk -F "\"" '{print $4}' | tr -d '\r\n'`
-
-echo "Building version $VERSION for the browser..."
+echo "Building the browser..."
 
 rm -fr build
 
 export IS_GENERIC_BROWSER=1
 export INLINE_RUNTIME_CHUNK=false
 export REACT_APP_BACKEND_WORKER_HASH=`ls "$ROOT"/../public/kcab/kcab.worker.*.js |  sed 's/.*kcab\.worker\.\(.*\)\.js/\1/'`
-export REACT_APP_ACTUAL_VERSION="$VERSION"
 
 yarn build
 
diff --git a/packages/desktop-client/bin/watch-browser b/packages/desktop-client/bin/watch-browser
index c62478f08..2f2861696 100755
--- a/packages/desktop-client/bin/watch-browser
+++ b/packages/desktop-client/bin/watch-browser
@@ -3,11 +3,8 @@
 ROOT=`dirname $0`
 cd "$ROOT/.."
 
-VERSION=`cat "$ROOT/../../desktop-client/package.json" | grep version | head -n1 | awk -F "\"" '{print $4}' | tr -d '\r\n'`
-
 export IS_GENERIC_BROWSER=1
 export PORT=3001
 export REACT_APP_BACKEND_WORKER_HASH="dev"
-export REACT_APP_ACTUAL_VERSION="$VERSION"
 
 yarn start
diff --git a/packages/desktop-client/src/browser-preload.browser.js b/packages/desktop-client/src/browser-preload.browser.js
index 1601925d0..f71812e1d 100644
--- a/packages/desktop-client/src/browser-preload.browser.js
+++ b/packages/desktop-client/src/browser-preload.browser.js
@@ -1,5 +1,7 @@
 import { initBackend as initSQLBackend } from 'absurd-sql/dist/indexeddb-main-thread';
 
+import packageJson from '../package.json';
+
 const backendWorkerUrl = new URL('./browser-server.js', import.meta.url);
 
 // This file installs global variables that the app expects.
@@ -8,7 +10,7 @@ const backendWorkerUrl = new URL('./browser-server.js', import.meta.url);
 // everything else.
 
 let IS_DEV = process.env.NODE_ENV === 'development';
-let ACTUAL_VERSION = process.env.REACT_APP_ACTUAL_VERSION;
+let ACTUAL_VERSION = packageJson.version;
 
 // *** Start the backend ***
 let worker;
diff --git a/packages/loot-core/bin/get-db-schema b/packages/loot-core/bin/get-db-schema
deleted file mode 100644
index 2e17a5cec..000000000
--- a/packages/loot-core/bin/get-db-schema
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env ./cli-runner.js
-process.env.LOOT_DATA_DIR = __dirname + '/../../../../data';
-import * as sqlite from '../platform/server/sqlite';
-import * as db from '../server/db';
-import { getMessages } from '../server/sync';
-
-let dbPath = process.argv[2];
-let tables = [
-  'spreadsheet_cells',
-  'accounts',
-  'transactions',
-  'categories',
-  'category_groups',
-  'category_mapping',
-  'payees',
-  'payee_rules',
-  'payee_mapping'
-];
-
-async function init() {
-  db.setDatabase(sqlite.openDatabase(dbPath));
-  let schema = {};
-
-  for (let table of tables) {
-    let fields = await db.all(`PRAGMA table_info(${table})`);
-    schema[table] = {};
-    for (let field of fields) {
-      schema[table][field.name] = field.type.toLowerCase();
-    }
-  }
-
-  console.log(schema);
-}
-
-init();
diff --git a/packages/loot-core/bin/migrate.js b/packages/loot-core/bin/migrate.js
deleted file mode 100755
index 15f1b8914..000000000
--- a/packages/loot-core/bin/migrate.js
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/usr/bin/env actual-cli-runner.js
-require('../src/server/migrate/cli');
diff --git a/packages/loot-core/bin/profile-sql.js b/packages/loot-core/bin/profile-sql.js
deleted file mode 100755
index 053f354a4..000000000
--- a/packages/loot-core/bin/profile-sql.js
+++ /dev/null
@@ -1,118 +0,0 @@
-#!/usr/bin/env actual-cli-runner.js
-import fs from 'fs';
-import os from 'os';
-
-import * as asyncStorage from '../src/platform/server/asyncStorage';
-import * as sqlite from '../src/platform/server/sqlite';
-import { runQuery } from '../src/server/aql';
-import * as db from '../src/server/db';
-import { batchMessages, setSyncingMode } from '../src/server/sync';
-import q from '../src/shared/query';
-import { makeChild } from '../src/shared/transactions';
-
-let dbPath = process.argv[3];
-
-if (dbPath == null || dbPath === '') {
-  console.log('db path is required');
-  process.exit(1);
-}
-
-function pad(n) {
-  return n < 10 ? '0' + n : n;
-}
-
-async function init() {
-  asyncStorage.init();
-  setSyncingMode('disabled');
-
-  let tempPath = os.tmpdir() + '/db-profile.sql';
-  fs.copyFileSync(dbPath, tempPath);
-
-  db.setDatabase(sqlite.openDatabase(tempPath));
-
-  let accounts = await db.getAccounts();
-
-  await batchMessages(() => {
-    for (let i = 0; i < 100; i++) {
-      if (Math.random() < 0.02) {
-        let parent = {
-          date: '2020-01-' + pad(Math.floor(Math.random() * 30)),
-          amount: Math.floor(Math.random() * 10000),
-          account: accounts[0].id,
-          notes: 'foo',
-        };
-        db.insertTransaction(parent);
-        db.insertTransaction(
-          makeChild(parent, {
-            amount: Math.floor(Math.random() * 1000),
-          }),
-        );
-        db.insertTransaction(
-          makeChild(parent, {
-            amount: Math.floor(Math.random() * 1000),
-          }),
-        );
-        db.insertTransaction(
-          makeChild(parent, {
-            amount: Math.floor(Math.random() * 1000),
-          }),
-        );
-      } else {
-        db.insertTransaction({
-          date: '2020-01-' + pad(Math.floor(Math.random() * 30)),
-          amount: Math.floor(Math.random() * 10000),
-          account: accounts[0].id,
-        });
-      }
-    }
-  });
-
-  // full: 12647
-  // paged: 431
-
-  await db.execQuery('SELECT * FROM transactions');
-  await db.execQuery('SELECT * FROM transactions');
-  await db.execQuery('SELECT * FROM transactions');
-  await db.execQuery('SELECT * FROM transactions');
-  await db.execQuery('SELECT * FROM transactions');
-  await db.execQuery('SELECT * FROM transactions');
-  await db.execQuery('SELECT * FROM transactions');
-  await db.execQuery('SELECT * FROM transactions');
-
-  // await db.execQuery('PRAGMA journal_mode = WAL');
-
-  // console.log(
-  //   await db.all(
-  //     'SELECT * FROM v_transactions_layer2 WHERE v_transactions_layer2.account = "foo"'
-  //   )
-  // );
-
-  console.log('starting');
-  let s = Date.now();
-  let { data } = await runQuery(
-    q('transactions').select('*').options({ splits: 'grouped' }).serialize(),
-  );
-  console.log('# items:', data.length);
-  console.log('time:', Date.now() - s);
-
-  // for (let i = 0; i < accounts.length; i++) {
-  //   let s = Date.now();
-  //   // let data = await runQuery(
-  //   //   q('transactions')
-  //   //     .filter({ account: accounts[i].id })
-  //   //     .calculate({ $sum: '$amount' })
-  //   //     .serialize()
-  //   // );
-  //   let rows = db.runQuery(
-  //     `SELECT SUM(amount) as total FROM v_transactions_layer2 WHERE account = "${accounts[i].id}"`,
-  //     [],
-  //     true
-  //   );
-  //   console.log('Total:', rows[0]);
-  //   console.log('Time:', Date.now() - s);
-  // }
-
-  // console.log(data);
-}
-
-init();
diff --git a/packages/loot-core/bin/sql-regenerate-views b/packages/loot-core/bin/sql-regenerate-views
deleted file mode 100755
index eaa49066d..000000000
--- a/packages/loot-core/bin/sql-regenerate-views
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env actual-cli-runner.js
-const { schema } = require('../src/server/aql');
-const table = process.argv[3];
-
-if (table == null || table === 'transactions') {
-  let fields = Object.keys(schema.transactions).map(fieldName => {
-    let desc = schema.transactions[fieldName];
-    let field = `t.${desc.name || fieldName}`;
-
-    if (field === 't.description') {
-      field = 'pm.targetId';
-    } else if (field === 't.category') {
-      field = 'cm.transferId';
-    }
-
-    return `${field} AS ${fieldName}`;
-  });
-
-  console.log(`
-DROP VIEW IF EXISTS v_transactions;
-CREATE VIEW v_transactions AS
-SELECT ${fields.join(', ')} FROM transactions t
-  LEFT JOIN category_mapping cm ON cm.id = t.category
-  LEFT JOIN payee_mapping pm ON pm.id = t.description
-`);
-}
diff --git a/upcoming-release-notes/1227.md b/upcoming-release-notes/1227.md
new file mode 100644
index 000000000..75d5e229a
--- /dev/null
+++ b/upcoming-release-notes/1227.md
@@ -0,0 +1,6 @@
+---
+category: Maintenance
+authors: [MatissJanis]
+---
+
+Remove unused build scripts and simplify how we build version number
-- 
GitLab