wfu-migrate 0.1.21 → 0.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,13 @@
1
+ /**
2
+ * List Sites command - Query WordPress multisite sites from any environment
3
+ *
4
+ * Usage: wfu-migrate list-sites --env <env> [options]
5
+ *
6
+ * Returns site information from wp_blogs table including:
7
+ * - blog_id, domain, path
8
+ * - archived, spam, deleted status flags
9
+ * - Computed isActive flag
10
+ */
11
+ import { Command } from 'commander';
12
+ export declare const listSitesCommand: Command;
13
+ //# sourceMappingURL=list-sites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-sites.d.ts","sourceRoot":"","sources":["../../src/commands/list-sites.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+EpC,eAAO,MAAM,gBAAgB,SAOzB,CAAC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * List Sites command - Query WordPress multisite sites from any environment
3
+ *
4
+ * Usage: wfu-migrate list-sites --env <env> [options]
5
+ *
6
+ * Returns site information from wp_blogs table including:
7
+ * - blog_id, domain, path
8
+ * - archived, spam, deleted status flags
9
+ * - Computed isActive flag
10
+ */
11
+ import { Command } from 'commander';
12
+ import chalk from 'chalk';
13
+ import { readConfig } from '../lib/config-manager.js';
14
+ import { querySiteList } from '../lib/database.js';
15
+ const VALID_ENVS = ['dev', 'uat', 'pprd', 'prod', 'local'];
16
+ function formatSiteTable(sites) {
17
+ const lines = [];
18
+ const header = ' ID │ Domain │ Path │ Status';
19
+ const separator = '───────┼─────────────────────────────────────┼──────────┼────────────';
20
+ lines.push(header);
21
+ lines.push(separator);
22
+ for (const site of sites) {
23
+ const id = String(site.blogId).padStart(5);
24
+ const domain = site.domain.padEnd(35).slice(0, 35);
25
+ const path = site.path.padEnd(8).slice(0, 8);
26
+ let status = 'active';
27
+ if (!site.isActive) {
28
+ const flags = [];
29
+ if (site.archived)
30
+ flags.push('archived');
31
+ if (site.spam)
32
+ flags.push('spam');
33
+ if (site.deleted)
34
+ flags.push('deleted');
35
+ status = flags.join(', ');
36
+ }
37
+ const statusColor = site.isActive ? chalk.green(status) : chalk.yellow(status);
38
+ lines.push(` ${id} │ ${domain} │ ${path} │ ${statusColor}`);
39
+ }
40
+ return lines.join('\n');
41
+ }
42
+ async function runListSites(options) {
43
+ if (!VALID_ENVS.includes(options.env)) {
44
+ console.error(chalk.red(`Error: Invalid environment: ${options.env}`));
45
+ console.error(chalk.gray(`Valid environments: ${VALID_ENVS.join(', ')}`));
46
+ process.exit(1);
47
+ }
48
+ const env = options.env;
49
+ const config = readConfig();
50
+ if (!config) {
51
+ console.error(chalk.red('Error: Configuration not found'));
52
+ console.error(chalk.gray('Run "wfu-migrate config wizard" to set up configuration'));
53
+ process.exit(1);
54
+ }
55
+ const dbConfig = env === 'local' ? config.environments.local : config.environments[env];
56
+ if (!dbConfig.host) {
57
+ console.error(chalk.red(`Error: Environment ${env} is not configured`));
58
+ console.error(chalk.gray(`Run "wfu-migrate config set env.${env}.host <hostname>" to configure`));
59
+ process.exit(1);
60
+ }
61
+ const result = await querySiteList(dbConfig);
62
+ if (!result.success) {
63
+ console.error(chalk.red('Error: Failed to query sites'));
64
+ console.error(chalk.gray(result.error || 'Unknown error'));
65
+ process.exit(1);
66
+ }
67
+ let sites = result.sites;
68
+ if (options.activeOnly) {
69
+ sites = sites.filter(s => s.isActive);
70
+ }
71
+ if (options.format === 'json') {
72
+ console.log(JSON.stringify(sites, null, 2));
73
+ }
74
+ else {
75
+ console.log(chalk.bold(`\nSites in ${env} environment:\n`));
76
+ console.log(formatSiteTable(sites));
77
+ console.log('');
78
+ const activeCount = sites.filter(s => s.isActive).length;
79
+ const inactiveCount = sites.length - activeCount;
80
+ console.log(chalk.gray(`Total: ${sites.length} sites (${activeCount} active, ${inactiveCount} inactive)`));
81
+ }
82
+ }
83
+ export const listSitesCommand = new Command('list-sites')
84
+ .description('List WordPress multisite sites from an environment')
85
+ .requiredOption('--env <env>', 'Environment to query (dev, uat, pprd, prod, local)')
86
+ .option('--format <format>', 'Output format (json, table)', 'table')
87
+ .option('--active-only', 'Only show active sites (not archived/spam/deleted)', false)
88
+ .action(async (options) => {
89
+ await runListSites(options);
90
+ });
91
+ //# sourceMappingURL=list-sites.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-sites.js","sourceRoot":"","sources":["../../src/commands/list-sites.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -17,6 +17,7 @@ import { envMigrateCommand } from './commands/env-migrate.js';
17
17
  import { configCommand } from './commands/config.js';
18
18
  import { doctorCommand } from './commands/doctor.js';
19
19
  import { cleanupCommand } from './commands/cleanup.js';
20
+ import { listSitesCommand } from './commands/list-sites.js';
20
21
  const VERSION = '0.1.21';
21
22
  program
22
23
  .name('wfu-migrate')
@@ -27,5 +28,6 @@ program.addCommand(envMigrateCommand);
27
28
  program.addCommand(configCommand);
28
29
  program.addCommand(doctorCommand);
29
30
  program.addCommand(cleanupCommand);
31
+ program.addCommand(listSitesCommand);
30
32
  program.parse();
31
33
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEzB,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,+EAA+E,CAAC;KAC5F,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,4BAA4B,CAAC,CAAC;AAEnE,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEnC,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEzB,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,+EAA+E,CAAC;KAC5F,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,4BAA4B,CAAC,CAAC;AAEnE,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAErC,OAAO,CAAC,KAAK,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wfu-migrate",
3
- "version": "0.1.21",
3
+ "version": "0.1.22",
4
4
  "description": "CLI tool for migrating WordPress multisite databases between Wake Forest University environments",
5
5
  "main": "dist/index.js",
6
6
  "bin": {