@webship.co/workspace-drupal-profiles 0.0.0-stage → 1.0.0-beta1

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.
Files changed (53) hide show
  1. package/README.md +66 -2
  2. package/commands/cmd-build-profiles-bear.sh +29 -0
  3. package/commands/cmd-build-profiles-commerce.sh +29 -0
  4. package/commands/cmd-build-profiles-cucumber.sh +29 -0
  5. package/commands/cmd-build-profiles-degov.sh +29 -0
  6. package/commands/cmd-build-profiles-droopler.sh +29 -0
  7. package/commands/cmd-build-profiles-dropsolid_rocketship.sh +30 -0
  8. package/commands/cmd-build-profiles-drupal_demo_umami.sh +29 -0
  9. package/commands/cmd-build-profiles-drupal_minimal.sh +29 -0
  10. package/commands/cmd-build-profiles-drupal_standard.sh +29 -0
  11. package/commands/cmd-build-profiles-drustack.sh +29 -0
  12. package/commands/cmd-build-profiles-drutopia.sh +29 -0
  13. package/commands/cmd-build-profiles-govcms8.sh +29 -0
  14. package/commands/cmd-build-profiles-lightning.sh +29 -0
  15. package/commands/cmd-build-profiles-mandatory.sh +33 -0
  16. package/commands/cmd-build-profiles-openedu.sh +29 -0
  17. package/commands/cmd-build-profiles-openfed.sh +29 -0
  18. package/commands/cmd-build-profiles-openlucius.sh +29 -0
  19. package/commands/cmd-build-profiles-openrestaurant.sh +29 -0
  20. package/commands/cmd-build-profiles-openy.sh +29 -0
  21. package/commands/cmd-build-profiles-opigno_lms.sh +29 -0
  22. package/commands/cmd-build-profiles-orange_ecom_profile.sh +29 -0
  23. package/commands/cmd-build-profiles-panopoly.sh +29 -0
  24. package/commands/cmd-build-profiles-paragon.sh +29 -0
  25. package/commands/cmd-build-profiles-pino.sh +29 -0
  26. package/commands/cmd-build-profiles-presto.sh +29 -0
  27. package/commands/cmd-build-profiles-quick_start.sh +29 -0
  28. package/commands/cmd-build-profiles-sector.sh +29 -0
  29. package/commands/cmd-build-profiles-seeds.sh +29 -0
  30. package/commands/cmd-build-profiles-sm_dev_portal.sh +29 -0
  31. package/commands/cmd-build-profiles-social.sh +29 -0
  32. package/commands/cmd-build-profiles-splashawards.sh +29 -0
  33. package/commands/cmd-build-profiles-thunder.sh +29 -0
  34. package/commands/cmd-build-profiles-university.sh +29 -0
  35. package/commands/cmd-build-profiles-webship.sh +29 -0
  36. package/commands/cmd-build-profiles-wxt.sh +29 -0
  37. package/commands/cmd-build-profiles.sh +32 -0
  38. package/commands/cmd-tools-checks.sh +20 -0
  39. package/commands/cmd-tools-clone.sh +27 -0
  40. package/commands/cmd-tools-gitlab-ci-local.sh +25 -0
  41. package/commands/cmd-tools-reclaim.sh +24 -0
  42. package/commands/cmd-tools-remove.sh +46 -0
  43. package/commands/cmd-tools-screen.sh +21 -0
  44. package/commands/cmd-tools-update-all.sh +29 -0
  45. package/config/workspace.profiles.settings.yml +50 -0
  46. package/dist/src/index.d.ts +11 -0
  47. package/dist/src/index.js +17 -0
  48. package/dist/src/index.js.map +1 -0
  49. package/docs/AGENTS.md +69 -0
  50. package/docs/CLAUDE.md +7 -0
  51. package/docs/README.md +5 -0
  52. package/features/drupal-profiles.feature +13 -0
  53. package/package.json +93 -4
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Bootstrap.
4
+ # Find the workspace tooling from this script, so a fresh clone needs no setup.
5
+ WORKSPACE_SCRIPTS="${WORKSPACE_SCRIPTS:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../core/scripts" && pwd)}";
6
+ source ${WORKSPACE_SCRIPTS}/bootstrap.sh || exit 1 ;
7
+
8
+ # Load workspace settings and extra lists.
9
+ eval $(parse_yaml ${WORKSPACE_CONFIG}/workspace.profiles.settings.yml);
10
+
11
+
12
+ ARGPARSE_DESCRIPTION="Remove a profile"
13
+ argparse "$@" <<EOF || exit 1
14
+ parser.add_argument('PROJECT_NAME',
15
+ default='_none_',
16
+ nargs='?',
17
+ help='The name of the project.')
18
+ parser.add_argument('-o', '--orphans',
19
+ action='store_true',
20
+ default=False,
21
+ help='List DDEV entries whose project directory is gone, instead of removing anything.')
22
+ parser.add_argument('-f', '--force',
23
+ action='store_true',
24
+ default=False,
25
+ help='Remove even when the folder is the main git checkout other worktrees depend on, or holds commits and changes that are on no remote. Both are refused without it.')
26
+ parser.add_argument('-b', '--backup',
27
+ action='store_true',
28
+ default=False,
29
+ help='Export the database into backups/ before anything is deleted. Off by default: a remove is a remove.')
30
+ EOF
31
+
32
+ shift $#;
33
+ trim_project_name ; # "v11x00b1/" -> "v11x00b1" — see functions/fun-project-name.sh
34
+
35
+
36
+ # Change directory to the workspace for this full operation.
37
+ cd ${WORKSPACE_ROOT}/${doc_name};
38
+
39
+ if [ "${ORPHANS}" == 'yes' ] ; then
40
+ report_orphans ;
41
+ elif [ "${PROJECT_NAME}" == '_none_' ] ; then
42
+ echo "Name the project to remove, or pass --orphans to see DDEV entries with no directory." ;
43
+ exit 1 ;
44
+ else
45
+ remove_project "${PROJECT_NAME}" || exit 1 ;
46
+ fi
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Run anything in a detached screen session that survives terminal exits and
4
+ # dashboard restarts, with a log the dashboard's Screens modal can follow.
5
+ #
6
+ # bash cmd-tools-screen.sh --list
7
+ # bash cmd-tools-screen.sh build-demo1 --run "bash cmd-webship11-0-x-project.sh demo1 --install"
8
+ # bash cmd-tools-screen.sh build-demo1 --follow
9
+ # bash cmd-tools-screen.sh build-demo1 --stop
10
+
11
+ # Bootstrap.
12
+ # Find the workspace tooling from this script, so a fresh clone needs no setup.
13
+ WORKSPACE_SCRIPTS="${WORKSPACE_SCRIPTS:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../core/scripts" && pwd)}";
14
+ source ${WORKSPACE_SCRIPTS}/bootstrap.sh || exit 1 ;
15
+
16
+ ARGPARSE_DESCRIPTION="Run and manage detached screen sessions with dashboard-followable logs"
17
+ source ${WORKSPACE_SCRIPTS}/args/arg-screen.sh || exit 1 ;
18
+
19
+ shift $#;
20
+
21
+ screen_command ;
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Bootstrap.
4
+ # Find the workspace tooling from this script, so a fresh clone needs no setup.
5
+ WORKSPACE_SCRIPTS="${WORKSPACE_SCRIPTS:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../core/scripts" && pwd)}";
6
+ source ${WORKSPACE_SCRIPTS}/bootstrap.sh || exit 1 ;
7
+
8
+ # Load workspace settings and extra lists.
9
+ eval $(parse_yaml ${WORKSPACE_CONFIG}/workspace.profiles.settings.yml);
10
+
11
+ cd ${WORKSPACE_ROOT}/${doc_name};
12
+ echo "=======================================================";
13
+ echo " Update all projects in ${WORKSPACE_ROOT}/${doc_name} ";
14
+ echo "=======================================================";
15
+ for project in *; do
16
+ if [ -d "$project" ]; then
17
+ echo " $project ";
18
+ fi;
19
+ done;
20
+ for project in *; do
21
+ if [ -d "$project" ]; then
22
+ echo "=======================================================";
23
+ echo " ${WORKSPACE_ROOT}/${doc_name}/${project}/ ";
24
+ echo "=======================================================";
25
+ cd ${WORKSPACE_ROOT}/${doc_name}/${project};
26
+ yes | composer update -v;
27
+ fi;
28
+ cd ${WORKSPACE_ROOT}/${doc_name}
29
+ done;
@@ -0,0 +1,50 @@
1
+ doc:
2
+ name: profiles
3
+ profiles:
4
+ - drupal_standard
5
+ - drupal_minimal
6
+ - drupal_demo_umami
7
+ - webship
8
+ - cucumber
9
+ - lightning
10
+ - thunder
11
+ - social
12
+ - opigno_lms
13
+ - panopoly
14
+ - droopler
15
+ - openedu
16
+ - openfed
17
+ - openrestaurant
18
+ - openy
19
+ - pino
20
+ - quick_start
21
+ - seeds
22
+ - university
23
+ - wxt
24
+ - degov
25
+ - agov
26
+ - drustack
27
+ - presto
28
+ - splashawards
29
+ - drutopia
30
+ - mandatory
31
+ - govcms8
32
+ - sm_dev_portal
33
+ - dcco
34
+ - dropsolid_rocketship
35
+ - paragon
36
+
37
+ # What this folder's items ARE, which decides what the dashboard offers on each row:
38
+ # sites — real projects with a DDEV environment: build, start, back up, graph, index
39
+ # code — repositories checked out to work on, without a site of their own
40
+ # files — markdown documents, edited in place
41
+ # ai-items — agents, skills and prompts, installable into ~/.claude
42
+ # media — recordings and images
43
+ type: sites
44
+
45
+ # What the COMPOSER menu may do here: full | manifest.
46
+ composer: manifest
47
+
48
+ assistant:
49
+ name: default
50
+ placeholder: default
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The Drupal profiles workspace for Webship Workspace: the `profiles/` folder as a plugin.
3
+ *
4
+ * What the package carries is placed by the installer from the manifest (the folder's settings file,
5
+ * its commands and its docs) and listed by --activate; the dashboard draws the workspace from the
6
+ * settings file like any other. Nothing to register at run time yet: this is where the folder's own
7
+ * rail buttons, row menus or assistant context would go.
8
+ */
9
+ import type { PluginApi } from '@webship.co/workspace-plugin-api';
10
+ export declare const WORKSPACE_KEY = "profiles";
11
+ export declare function register(api: PluginApi): void;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * The Drupal profiles workspace for Webship Workspace: the `profiles/` folder as a plugin.
4
+ *
5
+ * What the package carries is placed by the installer from the manifest (the folder's settings file,
6
+ * its commands and its docs) and listed by --activate; the dashboard draws the workspace from the
7
+ * settings file like any other. Nothing to register at run time yet: this is where the folder's own
8
+ * rail buttons, row menus or assistant context would go.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.WORKSPACE_KEY = void 0;
12
+ exports.register = register;
13
+ exports.WORKSPACE_KEY = 'profiles';
14
+ function register(api) {
15
+ api.addAssistantContext(() => `The profiles/ workspace is the Drupal profiles workspace (a plugin, @webship.co/workspace-drupal-profiles); its commands are the cmd-*.sh scripts in that folder.`);
16
+ }
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAMH,4BAEC;AAJY,QAAA,aAAa,GAAG,UAAU,CAAC;AAExC,SAAgB,QAAQ,CAAC,GAAc;IACrC,GAAG,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,mKAAmK,CAAC,CAAC;AACrM,CAAC"}
package/docs/AGENTS.md ADDED
@@ -0,0 +1,69 @@
1
+ # Profiles
2
+
3
+ Contrib and private installation profiles, checked out to work on.
4
+
5
+ Part of the **Webship Workspace** (`~/workspace`), a DDEV-only harness. The rules in the root
6
+ `CLAUDE.md` apply here too; what follows is what is specific to this folder.
7
+
8
+ ## The rule that matters here
9
+
10
+ Everything goes through DDEV. Never a host `composer`, `drush` or `mysql`:
11
+
12
+ ```bash
13
+ ddev composer require drupal/something
14
+ ddev drush cr
15
+ ddev export-db --file=… # not mysqldump
16
+ ddev delete -y -O # not a dropped database
17
+ ```
18
+
19
+ `ddev start` takes `-y`; **`ddev stop` does not**. Never write a `$databases` block into
20
+ `settings.php` — DDEV's `settings.ddev.php` owns the connection.
21
+
22
+ ## Commands here
23
+
24
+ ```bash
25
+ bash cmd-build-profiles-bear.sh
26
+ bash cmd-build-profiles-commerce.sh
27
+ bash cmd-build-profiles-cucumber.sh
28
+ bash cmd-build-profiles-degov.sh
29
+ bash cmd-build-profiles-droopler.sh
30
+ bash cmd-build-profiles-dropsolid_rocketship.sh
31
+ bash cmd-build-profiles-drupal_demo_umami.sh
32
+ bash cmd-build-profiles-drupal_minimal.sh
33
+ bash cmd-build-profiles-drupal_standard.sh
34
+ bash cmd-build-profiles-drustack.sh
35
+ bash cmd-build-profiles-drutopia.sh
36
+ bash cmd-build-profiles-govcms8.sh
37
+ bash cmd-build-profiles-lightning.sh
38
+ bash cmd-build-profiles-mandatory.sh
39
+ bash cmd-build-profiles-openedu.sh
40
+ bash cmd-build-profiles-openfed.sh
41
+ bash cmd-build-profiles-openlucius.sh
42
+ bash cmd-build-profiles-openrestaurant.sh
43
+ bash cmd-build-profiles-openy.sh
44
+ bash cmd-build-profiles-opigno_lms.sh
45
+ bash cmd-build-profiles-orange_ecom_profile.sh
46
+ bash cmd-build-profiles-panopoly.sh
47
+ bash cmd-build-profiles-paragon.sh
48
+ bash cmd-build-profiles-pino.sh
49
+ bash cmd-build-profiles-presto.sh
50
+ bash cmd-build-profiles-quick_start.sh
51
+ bash cmd-build-profiles-sector.sh
52
+ bash cmd-build-profiles-seeds.sh
53
+ bash cmd-build-profiles-sm_dev_portal.sh
54
+ bash cmd-build-profiles-social.sh
55
+ bash cmd-build-profiles-splashawards.sh
56
+ bash cmd-build-profiles-thunder.sh
57
+ bash cmd-build-profiles-university.sh
58
+ bash cmd-build-profiles-webship.sh
59
+ bash cmd-build-profiles-wxt.sh
60
+ bash cmd-build-profiles.sh # Bootstrap.
61
+ bash cmd-tools-graphify.sh # Map a project in this workspace into a queryable knowledge graph with
62
+ bash cmd-tools-obsidian.sh # Turn a project graph into an Obsidian vault
63
+ bash cmd-tools-ragify.sh # Index a project in this workspace into the Milvus vector database
64
+ bash cmd-tools-remove.sh # Bootstrap.
65
+ bash cmd-tools-update-all.sh # Bootstrap.
66
+ ```
67
+
68
+ Every one locates the workspace from its own path, so there is nothing to export and nothing to
69
+ install. `--help` on any of them lists its arguments.
package/docs/CLAUDE.md ADDED
@@ -0,0 +1,7 @@
1
+ # Profiles — workspace context
2
+
3
+ You are inside the **profiles** workspace of the Webship Workspace (`~/workspace`).
4
+
5
+ @AGENTS.md
6
+
7
+ The rules in it apply to everything under this folder, however deep.
package/docs/README.md ADDED
@@ -0,0 +1,5 @@
1
+ # Profiles.
2
+ --
3
+
4
+ * You could place the code your profile products.
5
+ * You could place the code for contrib profiles.
@@ -0,0 +1,13 @@
1
+ Feature: The Drupal profiles workspace plugin
2
+ Once the plugin is activated and installed, the profiles workspace is on the dashboard, and the
3
+ Plugins page lists the plugin with its four steps.
4
+
5
+ Scenario: The workspace page is there
6
+ Given I am on "/profiles"
7
+ Then the element "h1" should be displayed
8
+ And the element "#webship-workspace-projects, .items-list, .workspace-page" should be attached
9
+
10
+ Scenario: The plugin is listed on the Plugins page
11
+ Given I am on "/settings/plugins"
12
+ Then I should see "Drupal profiles"
13
+ And I should see "@webship.co/workspace-drupal-profiles"
package/package.json CHANGED
@@ -1,6 +1,95 @@
1
1
  {
2
2
  "name": "@webship.co/workspace-drupal-profiles",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.0.0-beta1",
4
+ "description": "The Drupal profiles workspace for Webship Workspace: the `profiles/` folder (type sites), its settings file, its 43 commands and its docs, activated as a plugin.",
5
+ "main": "dist/src/index.js",
6
+ "types": "dist/src/index.d.ts",
7
+ "license": "ISC",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/webship/workspace-drupal-profiles.git"
11
+ },
12
+ "files": [
13
+ "dist/src",
14
+ "commands",
15
+ "config",
16
+ "docs",
17
+ "features",
18
+ "README.md"
19
+ ],
20
+ "scripts": {
21
+ "build": "tsc -p tsconfig.json",
22
+ "prepare": "npm run build",
23
+ "test": "npm run build && node --test dist/tests/*.test.js",
24
+ "lint": "tsc -p tsconfig.json --noEmit"
25
+ },
26
+ "workspacePlugin": {
27
+ "name": "drupal-profiles",
28
+ "label": "Drupal profiles",
29
+ "workspace": {
30
+ "key": "profiles",
31
+ "settingsTemplate": "config/workspace.profiles.settings.yml",
32
+ "files": [
33
+ "commands/cmd-build-profiles-bear.sh",
34
+ "commands/cmd-build-profiles-commerce.sh",
35
+ "commands/cmd-build-profiles-cucumber.sh",
36
+ "commands/cmd-build-profiles-degov.sh",
37
+ "commands/cmd-build-profiles-droopler.sh",
38
+ "commands/cmd-build-profiles-dropsolid_rocketship.sh",
39
+ "commands/cmd-build-profiles-drupal_demo_umami.sh",
40
+ "commands/cmd-build-profiles-drupal_minimal.sh",
41
+ "commands/cmd-build-profiles-drupal_standard.sh",
42
+ "commands/cmd-build-profiles-drustack.sh",
43
+ "commands/cmd-build-profiles-drutopia.sh",
44
+ "commands/cmd-build-profiles-govcms8.sh",
45
+ "commands/cmd-build-profiles-lightning.sh",
46
+ "commands/cmd-build-profiles-mandatory.sh",
47
+ "commands/cmd-build-profiles-openedu.sh",
48
+ "commands/cmd-build-profiles-openfed.sh",
49
+ "commands/cmd-build-profiles-openlucius.sh",
50
+ "commands/cmd-build-profiles-openrestaurant.sh",
51
+ "commands/cmd-build-profiles-openy.sh",
52
+ "commands/cmd-build-profiles-opigno_lms.sh",
53
+ "commands/cmd-build-profiles-orange_ecom_profile.sh",
54
+ "commands/cmd-build-profiles-panopoly.sh",
55
+ "commands/cmd-build-profiles-paragon.sh",
56
+ "commands/cmd-build-profiles-pino.sh",
57
+ "commands/cmd-build-profiles-presto.sh",
58
+ "commands/cmd-build-profiles-quick_start.sh",
59
+ "commands/cmd-build-profiles-sector.sh",
60
+ "commands/cmd-build-profiles-seeds.sh",
61
+ "commands/cmd-build-profiles-sm_dev_portal.sh",
62
+ "commands/cmd-build-profiles-social.sh",
63
+ "commands/cmd-build-profiles-splashawards.sh",
64
+ "commands/cmd-build-profiles-thunder.sh",
65
+ "commands/cmd-build-profiles-university.sh",
66
+ "commands/cmd-build-profiles-webship.sh",
67
+ "commands/cmd-build-profiles-wxt.sh",
68
+ "commands/cmd-build-profiles.sh",
69
+ "commands/cmd-tools-checks.sh",
70
+ "commands/cmd-tools-clone.sh",
71
+ "commands/cmd-tools-gitlab-ci-local.sh",
72
+ "commands/cmd-tools-reclaim.sh",
73
+ "commands/cmd-tools-remove.sh",
74
+ "commands/cmd-tools-screen.sh",
75
+ "commands/cmd-tools-update-all.sh"
76
+ ],
77
+ "docs": [
78
+ "docs/AGENTS.md",
79
+ "docs/CLAUDE.md",
80
+ "docs/README.md"
81
+ ]
82
+ },
83
+ "features": [
84
+ "features/drupal-profiles.feature"
85
+ ]
86
+ },
87
+ "devDependencies": {
88
+ "@types/node": "^24.0.0",
89
+ "@webship.co/workspace-plugin-api": "^1.0.0-beta1",
90
+ "typescript": "^5.9.0"
91
+ },
92
+ "publishConfig": {
93
+ "access": "public"
94
+ }
95
+ }