@webship.co/workspace-drupal-themes 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.
- package/README.md +38 -2
- package/commands/cmd-all-back-end-build-themes.sh +59 -0
- package/commands/cmd-all-back-end-install-themes.sh +30 -0
- package/commands/cmd-all-front-end-build-themes.sh +57 -0
- package/commands/cmd-all-front-end-install-themes.sh +30 -0
- package/commands/cmd-backup-theme.sh +22 -0
- package/commands/cmd-build-admin-theme.sh +27 -0
- package/commands/cmd-build-drupal-template.sh +35 -0
- package/commands/cmd-build-theme.sh +27 -0
- package/commands/cmd-install-admin-theme.sh +40 -0
- package/commands/cmd-install-theme.sh +45 -0
- package/commands/cmd-tools-checks.sh +20 -0
- package/commands/cmd-tools-gitlab-ci-local.sh +25 -0
- package/commands/cmd-tools-reclaim.sh +24 -0
- package/commands/cmd-tools-remove.sh +42 -0
- package/commands/cmd-tools-update-all.sh +17 -0
- package/config/workspace.themes.settings.yml +482 -0
- package/dist/src/index.d.ts +11 -0
- package/dist/src/index.js +17 -0
- package/dist/src/index.js.map +1 -0
- package/docs/AGENTS.md +43 -0
- package/docs/CLAUDE.md +7 -0
- package/docs/README.md +47 -0
- package/features/drupal-themes.feature +13 -0
- package/package.json +65 -4
package/README.md
CHANGED
|
@@ -1,3 +1,39 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @webship.co/workspace-drupal-themes
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The **Drupal themes** workspace of the [Webship Workspace](https://github.com/webship/workspace) dashboard:
|
|
4
|
+
the `themes/` folder (type `code`), its settings file (`core/config/workspace.themes.settings.yml`),
|
|
5
|
+
its commands and its docs, as a plugin.
|
|
6
|
+
|
|
7
|
+
## Use it
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
cd ~/workspace
|
|
11
|
+
bash core/scripts/plugins.sh --require github:webship/workspace-drupal-themes
|
|
12
|
+
bash core/scripts/plugins.sh --activate drupal-themes # puts `themes` on the workspaces list of settings.yml
|
|
13
|
+
bash core/scripts/plugins.sh --install drupal-themes # the folder, its settings file (once), its commands, its docs (once)
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
The settings file and the docs are placed once and never overwritten: they hold what you put there.
|
|
17
|
+
`--deactivate` takes the workspace off the list; the folder and its content stay.
|
|
18
|
+
|
|
19
|
+
## The commands
|
|
20
|
+
|
|
21
|
+
| Command |
|
|
22
|
+
| --- |
|
|
23
|
+
| `cmd-all-back-end-build-themes.sh` |
|
|
24
|
+
| `cmd-all-back-end-install-themes.sh` |
|
|
25
|
+
| `cmd-all-front-end-build-themes.sh` |
|
|
26
|
+
| `cmd-all-front-end-install-themes.sh` |
|
|
27
|
+
| `cmd-backup-theme.sh` |
|
|
28
|
+
| `cmd-build-admin-theme.sh` |
|
|
29
|
+
| `cmd-build-drupal-template.sh` |
|
|
30
|
+
| `cmd-build-theme.sh` |
|
|
31
|
+
| `cmd-install-admin-theme.sh` |
|
|
32
|
+
| `cmd-install-theme.sh` |
|
|
33
|
+
| `cmd-tools-checks.sh` |
|
|
34
|
+
| `cmd-tools-gitlab-ci-local.sh` |
|
|
35
|
+
| `cmd-tools-reclaim.sh` |
|
|
36
|
+
| `cmd-tools-remove.sh` |
|
|
37
|
+
| `cmd-tools-update-all.sh` |
|
|
38
|
+
|
|
39
|
+
The bash functions these commands call live in the dashboard's `core/scripts/functions`.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
ARGPARSE_DESCRIPTION="Build every back-end admin theme listed in workspace.themes.settings.yml."
|
|
4
|
+
|
|
5
|
+
echo "*-----------------------------------------------------------*";
|
|
6
|
+
echo "| Build all Back-End admin themes |";
|
|
7
|
+
echo "*-----------------------------------------------------------*";
|
|
8
|
+
echo "| ${WORKSPACE_CONFIG}/workspace.themes.settings.yml";
|
|
9
|
+
echo "*-----------------------------------------------------------*"
|
|
10
|
+
|
|
11
|
+
current_path=$(pwd);
|
|
12
|
+
|
|
13
|
+
# Bootstrap.
|
|
14
|
+
# Find the workspace tooling from this script, so a fresh clone needs no setup.
|
|
15
|
+
WORKSPACE_SCRIPTS="${WORKSPACE_SCRIPTS:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../core/scripts" && pwd)}";
|
|
16
|
+
source ${WORKSPACE_SCRIPTS}/bootstrap.sh || exit 1 ;
|
|
17
|
+
|
|
18
|
+
# Load workspace settings and extra lists.
|
|
19
|
+
eval $(parse_yaml ${WORKSPACE_CONFIG}/workspace.themes.settings.yml);
|
|
20
|
+
|
|
21
|
+
# Refuse to run with an empty name. `rm -rf ${WORKSPACE_ROOT}/themes/${name}` with an unset name
|
|
22
|
+
# deletes the whole themes workspace, which is what the old `vdo_`-prefixed settings key caused:
|
|
23
|
+
# it flattened to a different variable than the one read here, so this was empty every time.
|
|
24
|
+
if [ -z "${drupal_template_drupal_theme_name}" ] ; then
|
|
25
|
+
echo "drupal.template_drupal_theme_name is not set in core/config/workspace.themes.settings.yml — refusing to run." ;
|
|
26
|
+
exit 1 ;
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
cd ${WORKSPACE_ROOT}/themes/ ;
|
|
31
|
+
|
|
32
|
+
# Delete old Admin themes.
|
|
33
|
+
for admin_theme_name in "${admin_themes[@]}"
|
|
34
|
+
do
|
|
35
|
+
sudo rm -rf ${WORKSPACE_ROOT}/themes/${admin_theme_name};
|
|
36
|
+
done
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
cd ${WORKSPACE_ROOT}/themes/ ;
|
|
40
|
+
|
|
41
|
+
sudo rm -rf ${WORKSPACE_ROOT}/themes/${drupal_template_drupal_theme_name} ;
|
|
42
|
+
composer create-project drupal/recommended-project:~9.0 ${drupal_template_drupal_theme_name} --stability dev --no-interaction ;
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
sudo chmod 775 -R ${WORKSPACE_ROOT}/themes/${drupal_template_drupal_theme_name} ;
|
|
46
|
+
sudo chown www-data:${USER} -R ${WORKSPACE_ROOT}/themes/${drupal_template_drupal_theme_name} ;
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
# Build all admin themes in the admin theme list.
|
|
50
|
+
for admin_theme_name in "${admin_themes[@]}"
|
|
51
|
+
do
|
|
52
|
+
cd ${WORKSPACE_ROOT}/themes/ ;
|
|
53
|
+
. cmd-build-admin-theme.sh ${admin_theme_name};
|
|
54
|
+
done
|
|
55
|
+
|
|
56
|
+
# Change file mod and owner.
|
|
57
|
+
sudo chmod 775 -R ${WORKSPACE_ROOT}/themes/ ;
|
|
58
|
+
sudo chown www-data:${USER} -R ${WORKSPACE_ROOT}/themes/ ;
|
|
59
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
ARGPARSE_DESCRIPTION="Install every back-end admin theme listed in workspace.themes.settings.yml into the template project."
|
|
4
|
+
|
|
5
|
+
echo "*-----------------------------------------------------------*";
|
|
6
|
+
echo "| Install all Back-End admin themes |";
|
|
7
|
+
echo "*-----------------------------------------------------------*";
|
|
8
|
+
echo "| ${WORKSPACE_CONFIG}/workspace.themes.settings.yml";
|
|
9
|
+
echo "*-----------------------------------------------------------*"
|
|
10
|
+
|
|
11
|
+
current_path=$(pwd);
|
|
12
|
+
|
|
13
|
+
# Bootstrap.
|
|
14
|
+
# Find the workspace tooling from this script, so a fresh clone needs no setup.
|
|
15
|
+
WORKSPACE_SCRIPTS="${WORKSPACE_SCRIPTS:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../core/scripts" && pwd)}";
|
|
16
|
+
source ${WORKSPACE_SCRIPTS}/bootstrap.sh || exit 1 ;
|
|
17
|
+
|
|
18
|
+
# Load workspace settings and extra lists.
|
|
19
|
+
eval $(parse_yaml ${WORKSPACE_CONFIG}/workspace.themes.settings.yml);
|
|
20
|
+
|
|
21
|
+
# Change file mod and owner.
|
|
22
|
+
sudo chmod 775 -R ${WORKSPACE_ROOT}/themes/ ;
|
|
23
|
+
sudo chown www-data:${USER} -R ${WORKSPACE_ROOT}/themes/ ;
|
|
24
|
+
|
|
25
|
+
# Install all admin themes in the admin theme list.
|
|
26
|
+
for admin_theme_name in "${admin_themes[@]}"
|
|
27
|
+
do
|
|
28
|
+
cd "${WORKSPACE_ROOT}/themes/" ;
|
|
29
|
+
. cmd-install-admin-theme.sh ${admin_theme_name} ;
|
|
30
|
+
done
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
ARGPARSE_DESCRIPTION="Build every front-end theme listed in workspace.themes.settings.yml."
|
|
4
|
+
|
|
5
|
+
echo "*-----------------------------------------------------------*";
|
|
6
|
+
echo "| Build all Front-End themes |";
|
|
7
|
+
echo "*-----------------------------------------------------------*";
|
|
8
|
+
echo "| ${WORKSPACE_CONFIG}/workspace.themes.settings.yml";
|
|
9
|
+
echo "*-----------------------------------------------------------*"
|
|
10
|
+
|
|
11
|
+
current_path=$(pwd);
|
|
12
|
+
|
|
13
|
+
# Bootstrap.
|
|
14
|
+
# Find the workspace tooling from this script, so a fresh clone needs no setup.
|
|
15
|
+
WORKSPACE_SCRIPTS="${WORKSPACE_SCRIPTS:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../core/scripts" && pwd)}";
|
|
16
|
+
source ${WORKSPACE_SCRIPTS}/bootstrap.sh || exit 1 ;
|
|
17
|
+
|
|
18
|
+
# Load workspace settings and extra lists.
|
|
19
|
+
eval $(parse_yaml ${WORKSPACE_CONFIG}/workspace.themes.settings.yml);
|
|
20
|
+
|
|
21
|
+
# Refuse to run with an empty name. `rm -rf ${WORKSPACE_ROOT}/themes/${name}` with an unset name
|
|
22
|
+
# deletes the whole themes workspace, which is what the old `vdo_`-prefixed settings key caused:
|
|
23
|
+
# it flattened to a different variable than the one read here, so this was empty every time.
|
|
24
|
+
if [ -z "${drupal_template_drupal_theme_name}" ] ; then
|
|
25
|
+
echo "drupal.template_drupal_theme_name is not set in core/config/workspace.themes.settings.yml — refusing to run." ;
|
|
26
|
+
exit 1 ;
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
cd ${WORKSPACE_ROOT}/themes/ ;
|
|
31
|
+
|
|
32
|
+
# Delete old themes.
|
|
33
|
+
for theme_name in "${themes[@]}"
|
|
34
|
+
do
|
|
35
|
+
sudo rm -rf ${WORKSPACE_ROOT}/themes/${theme_name};
|
|
36
|
+
done
|
|
37
|
+
|
|
38
|
+
cd ${WORKSPACE_ROOT}/themes/ ;
|
|
39
|
+
|
|
40
|
+
sudo rm -rf ${WORKSPACE_ROOT}/themes/${drupal_template_drupal_theme_name} ;
|
|
41
|
+
composer create-project drupal/recommended-project:~9.0 ${drupal_template_drupal_theme_name} --stability dev --no-interaction ;
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
sudo chmod 775 -R ${WORKSPACE_ROOT}/themes/${drupal_template_drupal_theme_name} ;
|
|
45
|
+
sudo chown www-data:${USER} -R ${WORKSPACE_ROOT}/themes/${drupal_template_drupal_theme_name} ;
|
|
46
|
+
|
|
47
|
+
# Build all themes in the themes list.
|
|
48
|
+
for theme_name in "${themes[@]}"
|
|
49
|
+
do
|
|
50
|
+
cd ${WORKSPACE_ROOT}/themes/ ;
|
|
51
|
+
. cmd-build-theme.sh ${theme_name};
|
|
52
|
+
done
|
|
53
|
+
|
|
54
|
+
# Change file mod and owner.
|
|
55
|
+
sudo chmod 775 -R ${WORKSPACE_ROOT}/themes/ ;
|
|
56
|
+
sudo chown www-data:${USER} -R ${WORKSPACE_ROOT}/themes/ ;
|
|
57
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
ARGPARSE_DESCRIPTION="Install every front-end theme listed in workspace.themes.settings.yml into the template project."
|
|
4
|
+
|
|
5
|
+
echo "*-----------------------------------------------------------*";
|
|
6
|
+
echo "| Install all Front-End themes |";
|
|
7
|
+
echo "*-----------------------------------------------------------*";
|
|
8
|
+
echo "| ${WORKSPACE_CONFIG}/workspace.themes.settings.yml";
|
|
9
|
+
echo "*-----------------------------------------------------------*"
|
|
10
|
+
|
|
11
|
+
current_path=$(pwd);
|
|
12
|
+
|
|
13
|
+
# Bootstrap.
|
|
14
|
+
# Find the workspace tooling from this script, so a fresh clone needs no setup.
|
|
15
|
+
WORKSPACE_SCRIPTS="${WORKSPACE_SCRIPTS:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../core/scripts" && pwd)}";
|
|
16
|
+
source ${WORKSPACE_SCRIPTS}/bootstrap.sh || exit 1 ;
|
|
17
|
+
|
|
18
|
+
# Load workspace settings and extra lists.
|
|
19
|
+
eval $(parse_yaml ${WORKSPACE_CONFIG}/workspace.themes.settings.yml);
|
|
20
|
+
|
|
21
|
+
# Change file mod and owner.
|
|
22
|
+
sudo chmod 775 -R ${WORKSPACE_ROOT}/themes/ ;
|
|
23
|
+
sudo chown www-data:${USER} -R ${WORKSPACE_ROOT}/themes/ ;
|
|
24
|
+
|
|
25
|
+
# Install all themes in the themes list.
|
|
26
|
+
for theme_name in "${themes[@]}"
|
|
27
|
+
do
|
|
28
|
+
cd "${WORKSPACE_ROOT}/themes/" ;
|
|
29
|
+
. cmd-install-theme.sh ${theme_name} ;
|
|
30
|
+
done
|
|
@@ -0,0 +1,22 @@
|
|
|
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.themes.settings.yml);
|
|
10
|
+
|
|
11
|
+
ARGPARSE_DESCRIPTION="Backup a theme"
|
|
12
|
+
argparse "$@" <<EOF || exit 1
|
|
13
|
+
parser.add_argument('PROJECT_NAME',
|
|
14
|
+
help='The name of the theme.')
|
|
15
|
+
EOF
|
|
16
|
+
|
|
17
|
+
shift $#;
|
|
18
|
+
trim_project_name ; # "v11x00b1/" -> "v11x00b1" — see functions/fun-project-name.sh
|
|
19
|
+
|
|
20
|
+
backup_time=$( date '+%Y-%m-%d_%H-%M-%S' );
|
|
21
|
+
tar -cvzf ${backups}/${doc_name}/${doc_name}---${PROJECT_NAME}--${backup_time}.tar.gz ${PROJECT_NAME} ;
|
|
22
|
+
(cd ${PROJECT_NAME} && ddev export-db --file=${backups}/${doc_name}/${doc_name}---${PROJECT_NAME}--${backup_time}-db.sql.gz) ;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# workspace-name: Admin Theme
|
|
4
|
+
|
|
5
|
+
# Bootstrap.
|
|
6
|
+
# Find the workspace tooling from this script, so a fresh clone needs no setup.
|
|
7
|
+
WORKSPACE_SCRIPTS="${WORKSPACE_SCRIPTS:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../core/scripts" && pwd)}";
|
|
8
|
+
source ${WORKSPACE_SCRIPTS}/bootstrap.sh || exit 1 ;
|
|
9
|
+
|
|
10
|
+
# Load workspace settings and extra lists.
|
|
11
|
+
eval $(parse_yaml ${WORKSPACE_CONFIG}/workspace.themes.settings.yml);
|
|
12
|
+
|
|
13
|
+
# GET the project name argument.
|
|
14
|
+
if [ "$1" != "" ]; then
|
|
15
|
+
theme_name=$1;
|
|
16
|
+
else
|
|
17
|
+
echo "Please add the name of your theme.";
|
|
18
|
+
exit 1;
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
echo "*-----------------------------------------------------------*";
|
|
22
|
+
echo "| Build ${theme_name}";
|
|
23
|
+
echo "*-----------------------------------------------------------*";
|
|
24
|
+
|
|
25
|
+
cp -r ${drupal_template_drupal_theme_name} ${WORKSPACE_ROOT}/themes/${theme_name} ;
|
|
26
|
+
cd ${WORKSPACE_ROOT}/themes/${theme_name} ;
|
|
27
|
+
composer require drupal/${theme_name} ;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# workspace-name: Drupal template
|
|
4
|
+
|
|
5
|
+
echo "*-----------------------------------------------------------*";
|
|
6
|
+
echo "| Build Drupal template |";
|
|
7
|
+
echo "*-----------------------------------------------------------*";
|
|
8
|
+
|
|
9
|
+
current_path=$(pwd);
|
|
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
|
+
# Load workspace settings and extra lists.
|
|
17
|
+
eval $(parse_yaml ${WORKSPACE_CONFIG}/workspace.themes.settings.yml);
|
|
18
|
+
|
|
19
|
+
# Refuse to run with an empty name. `rm -rf ${WORKSPACE_ROOT}/themes/${name}` with an unset name
|
|
20
|
+
# deletes the whole themes workspace, which is what the old `vdo_`-prefixed settings key caused:
|
|
21
|
+
# it flattened to a different variable than the one read here, so this was empty every time.
|
|
22
|
+
if [ -z "${drupal_template_drupal_theme_name}" ] ; then
|
|
23
|
+
echo "drupal.template_drupal_theme_name is not set in core/config/workspace.themes.settings.yml — refusing to run." ;
|
|
24
|
+
exit 1 ;
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
cd ${WORKSPACE_ROOT}/themes/ ;
|
|
29
|
+
|
|
30
|
+
sudo rm -rf ${WORKSPACE_ROOT}/themes/${drupal_template_drupal_theme_name} ;
|
|
31
|
+
composer create-project drupal/recommended-project:~9.0 ${drupal_template_drupal_theme_name} --stability dev --no-interaction ;
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
sudo chmod 775 -R ${WORKSPACE_ROOT}/themes/${drupal_template_drupal_theme_name} ;
|
|
35
|
+
sudo chown www-data:${USER} -R ${WORKSPACE_ROOT}/themes/${drupal_template_drupal_theme_name} ;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# workspace-name: Theme
|
|
4
|
+
|
|
5
|
+
# Bootstrap.
|
|
6
|
+
# Find the workspace tooling from this script, so a fresh clone needs no setup.
|
|
7
|
+
WORKSPACE_SCRIPTS="${WORKSPACE_SCRIPTS:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../core/scripts" && pwd)}";
|
|
8
|
+
source ${WORKSPACE_SCRIPTS}/bootstrap.sh || exit 1 ;
|
|
9
|
+
|
|
10
|
+
# Load workspace settings and extra lists.
|
|
11
|
+
eval $(parse_yaml ${WORKSPACE_CONFIG}/workspace.themes.settings.yml);
|
|
12
|
+
|
|
13
|
+
# GET the project name argument.
|
|
14
|
+
if [ "$1" != "" ]; then
|
|
15
|
+
theme_name=$1;
|
|
16
|
+
else
|
|
17
|
+
echo "Please add the name of your theme.";
|
|
18
|
+
exit 1;
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
echo "*-----------------------------------------------------------*";
|
|
22
|
+
echo "| Build ${theme_name}";
|
|
23
|
+
echo "*-----------------------------------------------------------*";
|
|
24
|
+
|
|
25
|
+
cp -r ${drupal_template_drupal_theme_name} ${WORKSPACE_ROOT}/themes/${theme_name} ;
|
|
26
|
+
cd ${WORKSPACE_ROOT}/themes/${theme_name} ;
|
|
27
|
+
composer require drupal/${theme_name} ;
|
|
@@ -0,0 +1,40 @@
|
|
|
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.themes.settings.yml);
|
|
10
|
+
|
|
11
|
+
# GET the project name argument.
|
|
12
|
+
if [ "$1" != "" ]; then
|
|
13
|
+
theme_name=$1;
|
|
14
|
+
else
|
|
15
|
+
echo "Please add the name of your theme.";
|
|
16
|
+
exit 1;
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
echo "*-----------------------------------------------------------*";
|
|
20
|
+
echo "| Install ${theme_name}";
|
|
21
|
+
echo "*-----------------------------------------------------------*";
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
cd "${WORKSPACE_ROOT}/themes/${theme_name}/web";
|
|
26
|
+
|
|
27
|
+
ddev drush site-install standard --yes \
|
|
28
|
+
--site-name="Theme ${theme_name}" \
|
|
29
|
+
--account-name="${account_name}" \
|
|
30
|
+
--account-pass="${account_pass}" \
|
|
31
|
+
--account-mail="${account_mail}" \
|
|
32
|
+
--db-url="mysql://db:db@db/db" ;
|
|
33
|
+
|
|
34
|
+
ddev drush config-set system.performance css.preprocess 0 --yes ;
|
|
35
|
+
ddev drush config-set system.performance js.preprocess 0 --yes ;
|
|
36
|
+
ddev drush config-set system.logging error_level all --yes ;
|
|
37
|
+
ddev drush cr ;
|
|
38
|
+
|
|
39
|
+
ddev drush theme-enable ${theme_name} ;
|
|
40
|
+
ddev drush config-set system.theme admin ${theme_name} --yes ;
|
|
@@ -0,0 +1,45 @@
|
|
|
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.themes.settings.yml);
|
|
10
|
+
|
|
11
|
+
# GET the project name argument.
|
|
12
|
+
if [ "$1" != "" ]; then
|
|
13
|
+
theme_name=$1;
|
|
14
|
+
else
|
|
15
|
+
echo "Please add the name of your theme.";
|
|
16
|
+
exit 1;
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
echo "*-----------------------------------------------------------*";
|
|
20
|
+
echo "| Install ${theme_name}";
|
|
21
|
+
echo "*-----------------------------------------------------------*";
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
cd "${WORKSPACE_ROOT}/themes/${theme_name}/web";
|
|
26
|
+
|
|
27
|
+
ddev drush site-install standard --yes \
|
|
28
|
+
--site-name="Theme ${theme_name}" \
|
|
29
|
+
--account-name="${account_name}" \
|
|
30
|
+
--account-pass="${account_pass}" \
|
|
31
|
+
--account-mail="${account_mail}" \
|
|
32
|
+
--db-url="mysql://db:db@db/db" ;
|
|
33
|
+
|
|
34
|
+
ddev drush config-set system.performance css.preprocess 0 --yes ;
|
|
35
|
+
ddev drush config-set system.performance js.preprocess 0 --yes ;
|
|
36
|
+
ddev drush config-set system.logging error_level all --yes ;
|
|
37
|
+
ddev drush cr ;
|
|
38
|
+
|
|
39
|
+
ddev drush theme-enable ${theme_name} ;
|
|
40
|
+
ddev drush config-set system.theme default ${theme_name} --yes ;
|
|
41
|
+
ddev drush config-set system.theme admin seven --yes ;
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Run the code-quality checks a package in this workspace already declares in its package.json —
|
|
4
|
+
# lint:js, lint:css, lint:yaml, spellcheck, phpcs, and the browser suite — mapped onto one set of
|
|
5
|
+
# canonical names so the command means the same thing in every workspace.
|
|
6
|
+
|
|
7
|
+
# Bootstrap.
|
|
8
|
+
# Find the workspace tooling from this script, so a fresh clone needs no setup.
|
|
9
|
+
WORKSPACE_SCRIPTS="${WORKSPACE_SCRIPTS:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../core/scripts" && pwd)}";
|
|
10
|
+
source ${WORKSPACE_SCRIPTS}/bootstrap.sh || exit 1 ;
|
|
11
|
+
|
|
12
|
+
# Load workspace settings and extra lists.
|
|
13
|
+
eval $(parse_yaml ${WORKSPACE_CONFIG}/workspace.themes.settings.yml);
|
|
14
|
+
|
|
15
|
+
ARGPARSE_DESCRIPTION="Run the code-quality checks a themes item already declares"
|
|
16
|
+
source ${WORKSPACE_SCRIPTS}/args/arg-checks.sh || exit 1 ;
|
|
17
|
+
|
|
18
|
+
shift $#;
|
|
19
|
+
|
|
20
|
+
checks_command ;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Run a project's GitLab CI pipeline locally with gitlab-ci-local — the Webship
|
|
4
|
+
# green-gate before any push to git.drupalcode.org. Wires the
|
|
5
|
+
# drupal/gitlab_templates remote variables through the drupal-ci-local wrapper
|
|
6
|
+
# (installed on first run), checks Docker and SSH, and reports GREEN/RED.
|
|
7
|
+
|
|
8
|
+
# Bootstrap.
|
|
9
|
+
# Find the workspace tooling from this script, so a fresh clone needs no setup.
|
|
10
|
+
WORKSPACE_SCRIPTS="${WORKSPACE_SCRIPTS:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../core/scripts" && pwd)}";
|
|
11
|
+
source ${WORKSPACE_SCRIPTS}/bootstrap.sh || exit 1 ;
|
|
12
|
+
|
|
13
|
+
# Load workspace settings and extra lists.
|
|
14
|
+
eval $(parse_yaml ${WORKSPACE_CONFIG}/workspace.themes.settings.yml);
|
|
15
|
+
|
|
16
|
+
ARGPARSE_DESCRIPTION="Run a themes project's GitLab CI pipeline locally (the green-gate)"
|
|
17
|
+
source ${WORKSPACE_SCRIPTS}/args/arg-gitlab-ci-local.sh || exit 1 ;
|
|
18
|
+
|
|
19
|
+
shift $#;
|
|
20
|
+
|
|
21
|
+
if [ "${DOCTOR}" == 'yes' ] ; then
|
|
22
|
+
gitlab_ci_local_doctor && echo "Everything a green-gate run needs is in place." ;
|
|
23
|
+
else
|
|
24
|
+
gitlab_ci_local_run ;
|
|
25
|
+
fi
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Reclaim the disk that REMOVED projects left behind — their DDEV databases, snapshots, built images
|
|
4
|
+
# and containers. A project whose folder is still on disk is never touched, stopped or not.
|
|
5
|
+
#
|
|
6
|
+
# The sweep is machine-wide wherever you run it: it takes no project name, reads WORKSPACE_ROOT, and
|
|
7
|
+
# protects every project folder in the tree — so this copy behaves identically to the one in any other
|
|
8
|
+
# workspace. It ships in each workspace that leans on DDEV, graphify or RAG for the same reason
|
|
9
|
+
# cmd-tools-graphify.sh does: the folder you are standing in is where you look for a cmd-tools-*.
|
|
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
|
+
# Load workspace settings and extra lists.
|
|
17
|
+
eval $(parse_yaml ${WORKSPACE_CONFIG}/workspace.themes.settings.yml);
|
|
18
|
+
|
|
19
|
+
ARGPARSE_DESCRIPTION="Reclaim disk from projects that no longer have a folder — dry run unless --apply"
|
|
20
|
+
source ${WORKSPACE_SCRIPTS}/args/arg-reclaim.sh || exit 1 ;
|
|
21
|
+
|
|
22
|
+
shift $#;
|
|
23
|
+
|
|
24
|
+
reclaim_command ;
|
|
@@ -0,0 +1,42 @@
|
|
|
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.themes.settings.yml);
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
ARGPARSE_DESCRIPTION="Remove a project"
|
|
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('-f', '--force',
|
|
19
|
+
action='store_true',
|
|
20
|
+
default=False,
|
|
21
|
+
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.')
|
|
22
|
+
parser.add_argument('-o', '--orphans',
|
|
23
|
+
action='store_true',
|
|
24
|
+
default=False,
|
|
25
|
+
help='List DDEV entries whose project directory is gone, instead of removing anything.')
|
|
26
|
+
EOF
|
|
27
|
+
|
|
28
|
+
shift $#;
|
|
29
|
+
trim_project_name ; # "v11x00b1/" -> "v11x00b1" — see functions/fun-project-name.sh
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
# Change directory to the workspace for this full operation.
|
|
33
|
+
cd ${WORKSPACE_ROOT}/${doc_name};
|
|
34
|
+
|
|
35
|
+
if [ "${ORPHANS}" == 'yes' ] ; then
|
|
36
|
+
report_orphans ;
|
|
37
|
+
elif [ "${PROJECT_NAME}" == '_none_' ] ; then
|
|
38
|
+
echo "Name the project to remove, or pass --orphans to see DDEV entries with no directory." ;
|
|
39
|
+
exit 1 ;
|
|
40
|
+
else
|
|
41
|
+
remove_project "${PROJECT_NAME}" || exit 1 ;
|
|
42
|
+
fi
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Bootstrap.
|
|
2
|
+
# Find the workspace tooling from this script, so a fresh clone needs no setup.
|
|
3
|
+
WORKSPACE_SCRIPTS="${WORKSPACE_SCRIPTS:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../core/scripts" && pwd)}";
|
|
4
|
+
source ${WORKSPACE_SCRIPTS}/bootstrap.sh || exit 1 ;
|
|
5
|
+
|
|
6
|
+
# Load workspace settings and extra lists.
|
|
7
|
+
eval $(parse_yaml ${WORKSPACE_CONFIG}/workspace.themes.settings.yml);
|
|
8
|
+
|
|
9
|
+
for project in *; do
|
|
10
|
+
if [ -d "$project" ]; then
|
|
11
|
+
echo "===========================================";
|
|
12
|
+
echo " $project";
|
|
13
|
+
echo "===========================================";
|
|
14
|
+
cd ${WORKSPACE_ROOT}/${doc_name}/${project};
|
|
15
|
+
composer update --no-interaction ;
|
|
16
|
+
fi
|
|
17
|
+
done
|
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
doc:
|
|
2
|
+
name: themes
|
|
3
|
+
# The scratch project the theme builders create and destroy. The key name matters: parse_yaml
|
|
4
|
+
# flattens it to $drupal_template_drupal_theme_name, which is the variable those scripts read.
|
|
5
|
+
drupal:
|
|
6
|
+
template_drupal_theme_name: template_drupal
|
|
7
|
+
themes:
|
|
8
|
+
- flexi_pattern_lab
|
|
9
|
+
- zilch
|
|
10
|
+
- abeesparadise
|
|
11
|
+
- abovolab
|
|
12
|
+
- adaptivetheme
|
|
13
|
+
- aegan
|
|
14
|
+
- material
|
|
15
|
+
- agov_base
|
|
16
|
+
- agov_nsw
|
|
17
|
+
- agov_whitlam
|
|
18
|
+
- amazeui
|
|
19
|
+
- amptheme
|
|
20
|
+
- architect
|
|
21
|
+
- arriaga
|
|
22
|
+
- awesome
|
|
23
|
+
- awesome_zymphonies_theme
|
|
24
|
+
- badcamp_sight
|
|
25
|
+
- bank_zymphonies_theme
|
|
26
|
+
- barnettechetjlb
|
|
27
|
+
- bootstrap_barrio
|
|
28
|
+
- base_zymphonies_theme
|
|
29
|
+
- basic
|
|
30
|
+
- bassline
|
|
31
|
+
- bealestreet
|
|
32
|
+
- bear_skin
|
|
33
|
+
- beauty_salon_zymphonies_theme
|
|
34
|
+
- beep_edition
|
|
35
|
+
- beginning
|
|
36
|
+
- belgrade
|
|
37
|
+
- belle
|
|
38
|
+
- bem
|
|
39
|
+
- beryllium
|
|
40
|
+
- blocky
|
|
41
|
+
- blogz
|
|
42
|
+
- blueadmino
|
|
43
|
+
- bluemarine
|
|
44
|
+
- bluemasters
|
|
45
|
+
- bones_theme
|
|
46
|
+
- bon_voyage
|
|
47
|
+
- bootbase
|
|
48
|
+
- bootstrap
|
|
49
|
+
- bootstrap_sass
|
|
50
|
+
- bootstrapblog
|
|
51
|
+
- bootstrap_business
|
|
52
|
+
- bootstrap_clean_blog
|
|
53
|
+
- bootstrap_forms
|
|
54
|
+
- bootstrap_light
|
|
55
|
+
- bootstrap_lite
|
|
56
|
+
- bootstrap_mint
|
|
57
|
+
- bootstrap_pointnet
|
|
58
|
+
- rainbow
|
|
59
|
+
- bootstrap_rijkshuisstijl
|
|
60
|
+
- bootstrap_subtheme_rtl
|
|
61
|
+
- bootstrap4
|
|
62
|
+
- bootstrapper
|
|
63
|
+
- bourbon
|
|
64
|
+
- boxes_uikitty
|
|
65
|
+
- breeze
|
|
66
|
+
- bridge
|
|
67
|
+
- bs_base
|
|
68
|
+
- bt_theme
|
|
69
|
+
- bulma
|
|
70
|
+
- business
|
|
71
|
+
- businessgroup_zymphonies_theme
|
|
72
|
+
- business_listing_zymphonies_theme
|
|
73
|
+
- business_responsive_theme
|
|
74
|
+
- businessplus_lite
|
|
75
|
+
- busy
|
|
76
|
+
- byu_amp_theme
|
|
77
|
+
- byu_theme
|
|
78
|
+
- camaleon
|
|
79
|
+
- car_zymphonies_theme
|
|
80
|
+
- casper
|
|
81
|
+
- champs_base
|
|
82
|
+
- charity_zymphonies_theme
|
|
83
|
+
- cherryblossom
|
|
84
|
+
- civi_bartik
|
|
85
|
+
- claro
|
|
86
|
+
- classa11y
|
|
87
|
+
- d8_blog_theme
|
|
88
|
+
- clean_blog
|
|
89
|
+
- clinic_zymphonies_theme
|
|
90
|
+
- cloud_zymphonies_theme
|
|
91
|
+
- cog
|
|
92
|
+
- colonel
|
|
93
|
+
- coloradmin
|
|
94
|
+
- commerce_bootstrap
|
|
95
|
+
- uikitty_components
|
|
96
|
+
- concedra_theme
|
|
97
|
+
- conference_lite
|
|
98
|
+
- contacts_theme
|
|
99
|
+
- corolla
|
|
100
|
+
- corporate_corp_theme
|
|
101
|
+
- corporate_lite
|
|
102
|
+
- corporate_blue
|
|
103
|
+
- corporation
|
|
104
|
+
- creative_theme
|
|
105
|
+
- creative_responsive_theme
|
|
106
|
+
- stem_theme
|
|
107
|
+
- creativity
|
|
108
|
+
- credit_due
|
|
109
|
+
- da_vinci
|
|
110
|
+
- danland
|
|
111
|
+
- dawn
|
|
112
|
+
- designer
|
|
113
|
+
- devblog
|
|
114
|
+
- dg_theme
|
|
115
|
+
- diba_core
|
|
116
|
+
- dopetrope
|
|
117
|
+
- drulma
|
|
118
|
+
- drumob
|
|
119
|
+
- drupal8_custom_theme
|
|
120
|
+
- drupal8_parallax_theme
|
|
121
|
+
- premier_league
|
|
122
|
+
- drupal_light
|
|
123
|
+
- d8w3css
|
|
124
|
+
- drupal8_zymphonies_theme
|
|
125
|
+
- drupalcoders_bootstrap
|
|
126
|
+
- drupalexp_lite
|
|
127
|
+
- druppio_monopage
|
|
128
|
+
- druppio_small_business
|
|
129
|
+
- easy_news
|
|
130
|
+
- ebiz
|
|
131
|
+
- ebook_zymphonies_theme
|
|
132
|
+
- edynamic_theme
|
|
133
|
+
- eight
|
|
134
|
+
- electra
|
|
135
|
+
- eleven
|
|
136
|
+
- ember
|
|
137
|
+
- empty_theme
|
|
138
|
+
- emulsify
|
|
139
|
+
- estore
|
|
140
|
+
- everest
|
|
141
|
+
- exsen
|
|
142
|
+
- fepper
|
|
143
|
+
- flame
|
|
144
|
+
- flexi
|
|
145
|
+
- flexible
|
|
146
|
+
- flow2
|
|
147
|
+
- fontfolio
|
|
148
|
+
- form3
|
|
149
|
+
- fortytwo
|
|
150
|
+
- foundation_patterns
|
|
151
|
+
- foundation6
|
|
152
|
+
- fusion
|
|
153
|
+
- garland
|
|
154
|
+
- gesso
|
|
155
|
+
- glisseo
|
|
156
|
+
- gogland
|
|
157
|
+
- gordon
|
|
158
|
+
- govuk_design_system
|
|
159
|
+
- govcms8_uikit_starter
|
|
160
|
+
- govcms8_ui
|
|
161
|
+
- gratis
|
|
162
|
+
- great_zymphonies_theme
|
|
163
|
+
- green_theme
|
|
164
|
+
- guesthouse_lite
|
|
165
|
+
- guru
|
|
166
|
+
- helios_responsive
|
|
167
|
+
- himalaya
|
|
168
|
+
- holy
|
|
169
|
+
- hwc
|
|
170
|
+
- hops
|
|
171
|
+
- hotbed
|
|
172
|
+
- icemagic
|
|
173
|
+
- ideastorm
|
|
174
|
+
- iu
|
|
175
|
+
- industrial_zymphonies_theme
|
|
176
|
+
- insha
|
|
177
|
+
- integrity
|
|
178
|
+
- intercept_base
|
|
179
|
+
- isosceles_theme
|
|
180
|
+
- janitor
|
|
181
|
+
- jethro
|
|
182
|
+
- jouve_seven
|
|
183
|
+
- kalatheme
|
|
184
|
+
- kanji
|
|
185
|
+
- kashmir
|
|
186
|
+
- kaziranga
|
|
187
|
+
- khan
|
|
188
|
+
- lab
|
|
189
|
+
- landingpage_zymphonies_theme
|
|
190
|
+
- law_firm_theme
|
|
191
|
+
- liberty
|
|
192
|
+
- light_skeleton
|
|
193
|
+
- light_zymphonies_theme
|
|
194
|
+
- likable
|
|
195
|
+
- litejazz
|
|
196
|
+
- louie
|
|
197
|
+
- magazine_lite
|
|
198
|
+
- management
|
|
199
|
+
- marinelli
|
|
200
|
+
- matter
|
|
201
|
+
- material_base
|
|
202
|
+
- material_corporate
|
|
203
|
+
- mdc
|
|
204
|
+
- materialize
|
|
205
|
+
- mayo
|
|
206
|
+
- mbase
|
|
207
|
+
- medicare_zymphonies_theme
|
|
208
|
+
- mediteran
|
|
209
|
+
- medium_theme
|
|
210
|
+
- mediumish_blog
|
|
211
|
+
- menuistic
|
|
212
|
+
- mili
|
|
213
|
+
- milligram
|
|
214
|
+
- minima
|
|
215
|
+
- minimal
|
|
216
|
+
- mdb
|
|
217
|
+
- minimal_lite
|
|
218
|
+
- minimax
|
|
219
|
+
- mobidic
|
|
220
|
+
- mobile
|
|
221
|
+
- mobileapp_zymphonies_theme
|
|
222
|
+
- mono
|
|
223
|
+
- moonwalk
|
|
224
|
+
- mulpo
|
|
225
|
+
- multipurpose_corporate_theme
|
|
226
|
+
- musicians
|
|
227
|
+
- mytheme
|
|
228
|
+
- neato
|
|
229
|
+
- nebula
|
|
230
|
+
- nebula_demo
|
|
231
|
+
- nebula_example
|
|
232
|
+
- neon
|
|
233
|
+
- nero
|
|
234
|
+
- news_zymphonies_theme
|
|
235
|
+
- newsflash
|
|
236
|
+
- newsplus_lite
|
|
237
|
+
- nexus
|
|
238
|
+
- nightar
|
|
239
|
+
- nigraphic
|
|
240
|
+
- ninesixty
|
|
241
|
+
- nitty
|
|
242
|
+
- nittygritty
|
|
243
|
+
- addweb_drupal_back_end_theme
|
|
244
|
+
- noor
|
|
245
|
+
- octavia
|
|
246
|
+
- black_old
|
|
247
|
+
- om
|
|
248
|
+
- ombak
|
|
249
|
+
- omega
|
|
250
|
+
- onepage_zymphonies_theme
|
|
251
|
+
- onescreen
|
|
252
|
+
- openchurch_theme
|
|
253
|
+
- os_base
|
|
254
|
+
- paper
|
|
255
|
+
- paraboot
|
|
256
|
+
- paragon_adminkit
|
|
257
|
+
- paragon_themekit
|
|
258
|
+
- particle_responsive
|
|
259
|
+
- patternlab
|
|
260
|
+
- paxton
|
|
261
|
+
- blog_theme
|
|
262
|
+
- pets_zymphonies_theme
|
|
263
|
+
- photo
|
|
264
|
+
- photographer
|
|
265
|
+
- pistachio
|
|
266
|
+
- pixels
|
|
267
|
+
- pixture_reloaded
|
|
268
|
+
- platinum
|
|
269
|
+
- platon
|
|
270
|
+
- portfolio_theme
|
|
271
|
+
- pragtic
|
|
272
|
+
- prius
|
|
273
|
+
- proboci
|
|
274
|
+
- professional_responsive_theme
|
|
275
|
+
- professional_theme
|
|
276
|
+
- property_zymphonies_theme
|
|
277
|
+
- prototype
|
|
278
|
+
- qatar_zymphonies_theme
|
|
279
|
+
- qatar2022_zymphonies_theme
|
|
280
|
+
- quickseed_theme
|
|
281
|
+
- quickseed2017gci
|
|
282
|
+
- quickseedgci
|
|
283
|
+
- quickseed
|
|
284
|
+
- radix
|
|
285
|
+
- reactify
|
|
286
|
+
- red
|
|
287
|
+
- release_branch
|
|
288
|
+
- restaurant_lite
|
|
289
|
+
- restaurant_zymphonies_theme
|
|
290
|
+
- robotic
|
|
291
|
+
- root
|
|
292
|
+
- sailor
|
|
293
|
+
- sales_zymphonies_theme
|
|
294
|
+
- samara
|
|
295
|
+
- school_zymphonies_theme
|
|
296
|
+
- searchify
|
|
297
|
+
- semantica
|
|
298
|
+
- sensible
|
|
299
|
+
- seventeen
|
|
300
|
+
- shakespeare
|
|
301
|
+
- shiv
|
|
302
|
+
- shop_item
|
|
303
|
+
- showcase_lite
|
|
304
|
+
- classic_corporate_theme
|
|
305
|
+
- simpleblog
|
|
306
|
+
- simply
|
|
307
|
+
- skeletontheme
|
|
308
|
+
- sketch
|
|
309
|
+
- smallbusiness
|
|
310
|
+
- solid
|
|
311
|
+
- space
|
|
312
|
+
- spacelift
|
|
313
|
+
- spatial_theme
|
|
314
|
+
- spectre
|
|
315
|
+
- spring_bloom
|
|
316
|
+
- sshop
|
|
317
|
+
- stagb
|
|
318
|
+
- starlight
|
|
319
|
+
- startupgrowth_lite
|
|
320
|
+
- startup_zymphonies_theme
|
|
321
|
+
- store_zymphonies_theme
|
|
322
|
+
- tailwindcss
|
|
323
|
+
- tao
|
|
324
|
+
- tapestry
|
|
325
|
+
- tara
|
|
326
|
+
- teacher
|
|
327
|
+
- teacosy
|
|
328
|
+
- teatheme
|
|
329
|
+
- teka
|
|
330
|
+
- theone
|
|
331
|
+
- themage
|
|
332
|
+
- titus
|
|
333
|
+
- topplus_lite
|
|
334
|
+
- torsion
|
|
335
|
+
- travel_zymphonies_theme
|
|
336
|
+
- treetop
|
|
337
|
+
- triculin_responsive
|
|
338
|
+
- tweme
|
|
339
|
+
- twentyseventeen
|
|
340
|
+
- twentyfifteen
|
|
341
|
+
- uswds
|
|
342
|
+
- uikit
|
|
343
|
+
- uikitapi
|
|
344
|
+
- uikit_blog
|
|
345
|
+
- uikitty
|
|
346
|
+
- uikitty3
|
|
347
|
+
- uikitty_starter
|
|
348
|
+
- umami
|
|
349
|
+
- used_cars
|
|
350
|
+
- uswds_base
|
|
351
|
+
- vartheme
|
|
352
|
+
- vartheme_bs4
|
|
353
|
+
- vartheme_material
|
|
354
|
+
- ven
|
|
355
|
+
- verti
|
|
356
|
+
- visually_impaired_theme
|
|
357
|
+
- void
|
|
358
|
+
- waterloo
|
|
359
|
+
- wet4
|
|
360
|
+
- wxt_bootstrap
|
|
361
|
+
- webpackrs
|
|
362
|
+
- webtheme
|
|
363
|
+
- whitecanvas
|
|
364
|
+
- whitejazz
|
|
365
|
+
- windup
|
|
366
|
+
- wonder_zymphonies_theme
|
|
367
|
+
- writer
|
|
368
|
+
- xbase
|
|
369
|
+
- xseven
|
|
370
|
+
- xtheme
|
|
371
|
+
- yeti_theme
|
|
372
|
+
- yg_aesthetic
|
|
373
|
+
- yg_agency
|
|
374
|
+
- yg_app
|
|
375
|
+
- yg_app_one
|
|
376
|
+
- yg_architect
|
|
377
|
+
- yg_asymmetry
|
|
378
|
+
- yg_biz
|
|
379
|
+
- yg_black
|
|
380
|
+
- yg_bold
|
|
381
|
+
- yg_booster
|
|
382
|
+
- yg_business
|
|
383
|
+
- yg_business_line
|
|
384
|
+
- yg_business_one
|
|
385
|
+
- yg_business_plus
|
|
386
|
+
- yg_car_care
|
|
387
|
+
- yg_charity
|
|
388
|
+
- yg_concept
|
|
389
|
+
- yg_construction
|
|
390
|
+
- yg_construction_lite
|
|
391
|
+
- yg_corp
|
|
392
|
+
- yg_corporate
|
|
393
|
+
- yg_corporate_lite
|
|
394
|
+
- yg_creative
|
|
395
|
+
- yg_dentalcare
|
|
396
|
+
- yg_elate
|
|
397
|
+
- yg_event_organizer
|
|
398
|
+
- yg_fitness_center
|
|
399
|
+
- yg_fitness_gym
|
|
400
|
+
- yg_flew
|
|
401
|
+
- yg_flexy
|
|
402
|
+
- yg_freelancer
|
|
403
|
+
- yg_glow
|
|
404
|
+
- yg_greatness
|
|
405
|
+
- yg_hotel
|
|
406
|
+
- yg_iconic
|
|
407
|
+
- yg_insurance
|
|
408
|
+
- yg_intechnic
|
|
409
|
+
- yg_interior
|
|
410
|
+
- yg_justice
|
|
411
|
+
- yg_launcher
|
|
412
|
+
- yg_law
|
|
413
|
+
- yg_law_firm
|
|
414
|
+
- yg_learn
|
|
415
|
+
- yg_logistics
|
|
416
|
+
- yg_magazine
|
|
417
|
+
- yg_medical
|
|
418
|
+
- yg_medicare
|
|
419
|
+
- yg_multipurpose
|
|
420
|
+
- yg_music
|
|
421
|
+
- yg_newage
|
|
422
|
+
- yg_news
|
|
423
|
+
- yg_orange
|
|
424
|
+
- yg_photography
|
|
425
|
+
- yg_pixel
|
|
426
|
+
- yg_plumbing
|
|
427
|
+
- yg_profile
|
|
428
|
+
- yg_property_one
|
|
429
|
+
- yg_relic
|
|
430
|
+
- yg_restaurant
|
|
431
|
+
- yg_restaurant_lite
|
|
432
|
+
- yg_simple
|
|
433
|
+
- yg_solid
|
|
434
|
+
- yg_sports
|
|
435
|
+
- yg_sprint
|
|
436
|
+
- yg_verb
|
|
437
|
+
- zen
|
|
438
|
+
- zippy
|
|
439
|
+
- zircon
|
|
440
|
+
- ztheme
|
|
441
|
+
- zurb_clean_blog
|
|
442
|
+
- zurb_foundation
|
|
443
|
+
- zurb_template
|
|
444
|
+
admin_themes:
|
|
445
|
+
- adminimal_theme
|
|
446
|
+
- material_admin
|
|
447
|
+
- vartheme_admin
|
|
448
|
+
- vartheme_material_admin
|
|
449
|
+
- thunder_admin
|
|
450
|
+
- druadmin_lte_theme
|
|
451
|
+
- agnian_material_admin
|
|
452
|
+
- claro
|
|
453
|
+
- material_base
|
|
454
|
+
- eleven
|
|
455
|
+
- admintheme
|
|
456
|
+
- uikit_admin
|
|
457
|
+
- true_admin
|
|
458
|
+
- smart_admin_theme
|
|
459
|
+
- smarty_admin
|
|
460
|
+
- bootstrap_admin
|
|
461
|
+
- bt_admin_theme
|
|
462
|
+
- simple_admin
|
|
463
|
+
- hostinstantlyadmintheme
|
|
464
|
+
- endless_admin
|
|
465
|
+
- fortytwo_admin
|
|
466
|
+
- om_admin
|
|
467
|
+
- seaside_admin
|
|
468
|
+
|
|
469
|
+
# What this folder's items ARE, which decides what the dashboard offers on each row:
|
|
470
|
+
# sites — real projects with a DDEV environment: build, start, back up, graph, index
|
|
471
|
+
# code — repositories checked out to work on, without a site of their own
|
|
472
|
+
# files — markdown documents, edited in place
|
|
473
|
+
# ai-items — agents, skills and prompts, installable into ~/.claude
|
|
474
|
+
# media — recordings and images
|
|
475
|
+
type: code
|
|
476
|
+
|
|
477
|
+
# What the COMPOSER menu may do here: full | manifest.
|
|
478
|
+
composer: manifest
|
|
479
|
+
|
|
480
|
+
assistant:
|
|
481
|
+
name: default
|
|
482
|
+
placeholder: default
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Drupal themes workspace for Webship Workspace: the `themes/` 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 = "themes";
|
|
11
|
+
export declare function register(api: PluginApi): void;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The Drupal themes workspace for Webship Workspace: the `themes/` 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 = 'themes';
|
|
14
|
+
function register(api) {
|
|
15
|
+
api.addAssistantContext(() => `The themes/ workspace is the Drupal themes workspace (a plugin, @webship.co/workspace-drupal-themes); 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,QAAQ,CAAC;AAEtC,SAAgB,QAAQ,CAAC,GAAc;IACrC,GAAG,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,6JAA6J,CAAC,CAAC;AAC/L,CAAC"}
|
package/docs/AGENTS.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Themes
|
|
2
|
+
|
|
3
|
+
Contrib and private themes, 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-all-back-end-build-themes.sh
|
|
26
|
+
bash cmd-all-back-end-install-themes.sh
|
|
27
|
+
bash cmd-all-front-end-build-themes.sh
|
|
28
|
+
bash cmd-all-front-end-install-themes.sh
|
|
29
|
+
bash cmd-backup-theme.sh # Bootstrap.
|
|
30
|
+
bash cmd-build-admin-theme.sh # Bootstrap.
|
|
31
|
+
bash cmd-build-drupal-template.sh
|
|
32
|
+
bash cmd-build-theme.sh # Bootstrap.
|
|
33
|
+
bash cmd-install-admin-theme.sh # Bootstrap.
|
|
34
|
+
bash cmd-install-theme.sh # Bootstrap.
|
|
35
|
+
bash cmd-tools-graphify.sh # Map a project in this workspace into a queryable knowledge graph with
|
|
36
|
+
bash cmd-tools-obsidian.sh # Turn a project graph into an Obsidian vault
|
|
37
|
+
bash cmd-tools-ragify.sh # Index a project in this workspace into the Milvus vector database
|
|
38
|
+
bash cmd-tools-remove.sh # Bootstrap.
|
|
39
|
+
bash cmd-tools-update-all.sh # Find the workspace tooling from this script, so a fresh clone needs no setup.
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Every one locates the workspace from its own path, so there is nothing to export and nothing to
|
|
43
|
+
install. `--help` on any of them lists its arguments.
|
package/docs/CLAUDE.md
ADDED
package/docs/README.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Themes
|
|
2
|
+
--
|
|
3
|
+
|
|
4
|
+
To Build all front-end themes:
|
|
5
|
+
```
|
|
6
|
+
bash cmd-vdo-all-front-end-build-themes.sh
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
To Install all front-end themes:
|
|
11
|
+
```
|
|
12
|
+
bash cmd-vdo-all-front-end-install-themes.sh
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
To Build all back-end themes:
|
|
17
|
+
```
|
|
18
|
+
bash cmd-vdo-all-back-end-build-themes.sh
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
To Install all back-end themes:
|
|
23
|
+
```
|
|
24
|
+
bash cmd-vdo-all-back-end-install-themes.sh
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
To build one theme:
|
|
29
|
+
You will need to have the template_drupal site.
|
|
30
|
+
if you do not have it you could run the following command
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
bash cmd-vdo-build-drupal-template.sh
|
|
34
|
+
```
|
|
35
|
+
and then you could build the theme using the templage_drupal site copy
|
|
36
|
+
with the same name of the theme and install the theme init.
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
bash cmd-vdo-build-theme.sh THEME_NAME
|
|
40
|
+
```
|
|
41
|
+
Where THEME_NAME is the name of the theme in Drupal.org
|
|
42
|
+
|
|
43
|
+
To Install a theme site:
|
|
44
|
+
```
|
|
45
|
+
bash cmd-vdo-install-theme.sh THEME_NAME
|
|
46
|
+
```
|
|
47
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Feature: The Drupal themes workspace plugin
|
|
2
|
+
Once the plugin is activated and installed, the themes 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 "/themes"
|
|
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 themes"
|
|
13
|
+
And I should see "@webship.co/workspace-drupal-themes"
|
package/package.json
CHANGED
|
@@ -1,6 +1,67 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webship.co/workspace-drupal-themes",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "1.0.0-beta1",
|
|
4
|
+
"description": "The Drupal themes workspace for Webship Workspace: the `themes/` folder (type code), its settings file, its 15 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-themes.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-themes",
|
|
28
|
+
"label": "Drupal themes",
|
|
29
|
+
"workspace": {
|
|
30
|
+
"key": "themes",
|
|
31
|
+
"settingsTemplate": "config/workspace.themes.settings.yml",
|
|
32
|
+
"files": [
|
|
33
|
+
"commands/cmd-all-back-end-build-themes.sh",
|
|
34
|
+
"commands/cmd-all-back-end-install-themes.sh",
|
|
35
|
+
"commands/cmd-all-front-end-build-themes.sh",
|
|
36
|
+
"commands/cmd-all-front-end-install-themes.sh",
|
|
37
|
+
"commands/cmd-backup-theme.sh",
|
|
38
|
+
"commands/cmd-build-admin-theme.sh",
|
|
39
|
+
"commands/cmd-build-drupal-template.sh",
|
|
40
|
+
"commands/cmd-build-theme.sh",
|
|
41
|
+
"commands/cmd-install-admin-theme.sh",
|
|
42
|
+
"commands/cmd-install-theme.sh",
|
|
43
|
+
"commands/cmd-tools-checks.sh",
|
|
44
|
+
"commands/cmd-tools-gitlab-ci-local.sh",
|
|
45
|
+
"commands/cmd-tools-reclaim.sh",
|
|
46
|
+
"commands/cmd-tools-remove.sh",
|
|
47
|
+
"commands/cmd-tools-update-all.sh"
|
|
48
|
+
],
|
|
49
|
+
"docs": [
|
|
50
|
+
"docs/AGENTS.md",
|
|
51
|
+
"docs/CLAUDE.md",
|
|
52
|
+
"docs/README.md"
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
"features": [
|
|
56
|
+
"features/drupal-themes.feature"
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
"devDependencies": {
|
|
60
|
+
"@types/node": "^24.0.0",
|
|
61
|
+
"@webship.co/workspace-plugin-api": "^1.0.0-beta1",
|
|
62
|
+
"typescript": "^5.9.0"
|
|
63
|
+
},
|
|
64
|
+
"publishConfig": {
|
|
65
|
+
"access": "public"
|
|
66
|
+
}
|
|
67
|
+
}
|