"gnome-shell-extensions" 无法上传完整目录
"gnome-shell-extensions" Not able to upload the complete directory
首先,很抱歉,如果这不是该问的礼仪场所。
最近,我尝试将扩展 https://extensions.gnome.org/extension/2935/control-blur-effect-on-lock-screen/ 上传到 extensions.gnome.org 网站。
这个 link 说要 zip -j
https://extensions.gnome.org/upload/ 创建 zip 文件。然后上传。
当我使用 zip -r
制作 zip 文件并尝试上传时.. returns 错误是 metadata.json
文件未加载并且无法上传,尽管此文件存在。
我必须 zip -r
才能兼容使用命令 gnome-extensions install nameOfTheExtension
安装的 shell 扩展
据我所知,从同一网站下载的一些 gnome-shell-扩展程序有这个问题。我的意思是当您使用 zip -r
.
创建一个 zip 文件时
我怎样才能做到这一点?
这些文件必须在 Zip 的顶层:
metadata.json
extension.js
prefs.js
(可选文件)
stylesheet.css
(可选文件)
这是唯一的要求。 -r
和 -j
函数由 zip --help
:
解释
-j junk (don't record) directory names
-r recurse into directories
如果您所有的扩展文件都在一个顶级目录中,那么 -j
将起作用,否则它可能会破坏您的目录层次结构。您可以使用 unzip -l
.
检查 zip 的布局
通常你会用 zip -r extension@domain.zip [path with metadata.json]
:
压缩
$ ls
extensions.js metadata.json
$ zip -r extension@domain.zip .
adding: metadata.json (deflated 33%)
adding: extension.js (deflated 55%)
$ unzip -l extension@domain.zip
Archive: extension@domain.zip
Length Date Time Name
--------- ---------- ----- ----
194 04-25-2020 17:47 metadata.json
864 04-25-2020 17:47 extension.js
--------- -------
1058 2 files
为了补充 andy.holmes 的建议,打包扩展(其中可能有一个目录)的最简单方法是从扩展目录中压缩它。在我的例子中,目录是 schemas
.
目录结构:
└── my-extension@domain.com
├── extension.js
├── metadata.json
└── schemas
├── gschemas.compiled
└── org.gnome.shell.extensions.my-extension.gschema.xml
压缩:
cd my-extension@domain.com
zip -r my-extension@domain.com.zip *
用于构建 zip 的简短 bash 脚本:
#!/bin/bash
set -e
TMP_EXTENSION=/tmp/my-extension
# Cleanup previous build
rm -rf $TMP_EXTENSION
rm -f my-extension@domain.com.zip
cp -r my-extension@domain.com $TMP_EXTENSION
# Remove redundant content
rm -rf $TMP_EXTENSION/.git/
cd $TMP_EXTENSION
zip -r my-extension@domain.zip *
首先,很抱歉,如果这不是该问的礼仪场所。
最近,我尝试将扩展 https://extensions.gnome.org/extension/2935/control-blur-effect-on-lock-screen/ 上传到 extensions.gnome.org 网站。
这个 link 说要 zip -j
https://extensions.gnome.org/upload/ 创建 zip 文件。然后上传。
当我使用 zip -r
制作 zip 文件并尝试上传时.. returns 错误是 metadata.json
文件未加载并且无法上传,尽管此文件存在。
我必须 zip -r
才能兼容使用命令 gnome-extensions install nameOfTheExtension
据我所知,从同一网站下载的一些 gnome-shell-扩展程序有这个问题。我的意思是当您使用 zip -r
.
我怎样才能做到这一点?
这些文件必须在 Zip 的顶层:
metadata.json
extension.js
prefs.js
(可选文件)stylesheet.css
(可选文件)
这是唯一的要求。 -r
和 -j
函数由 zip --help
:
-j junk (don't record) directory names
-r recurse into directories
如果您所有的扩展文件都在一个顶级目录中,那么 -j
将起作用,否则它可能会破坏您的目录层次结构。您可以使用 unzip -l
.
通常你会用 zip -r extension@domain.zip [path with metadata.json]
:
$ ls
extensions.js metadata.json
$ zip -r extension@domain.zip .
adding: metadata.json (deflated 33%)
adding: extension.js (deflated 55%)
$ unzip -l extension@domain.zip
Archive: extension@domain.zip
Length Date Time Name
--------- ---------- ----- ----
194 04-25-2020 17:47 metadata.json
864 04-25-2020 17:47 extension.js
--------- -------
1058 2 files
为了补充 andy.holmes 的建议,打包扩展(其中可能有一个目录)的最简单方法是从扩展目录中压缩它。在我的例子中,目录是 schemas
.
目录结构:
└── my-extension@domain.com
├── extension.js
├── metadata.json
└── schemas
├── gschemas.compiled
└── org.gnome.shell.extensions.my-extension.gschema.xml
压缩:
cd my-extension@domain.com
zip -r my-extension@domain.com.zip *
用于构建 zip 的简短 bash 脚本:
#!/bin/bash
set -e
TMP_EXTENSION=/tmp/my-extension
# Cleanup previous build
rm -rf $TMP_EXTENSION
rm -f my-extension@domain.com.zip
cp -r my-extension@domain.com $TMP_EXTENSION
# Remove redundant content
rm -rf $TMP_EXTENSION/.git/
cd $TMP_EXTENSION
zip -r my-extension@domain.zip *