2017-01-16 64 views
1

我正在使用一系列CURL請求來創建我的包。CQ5.5通過CURL更新現有包

我現在正在做什麼:我創建了一個新包,添加了過濾器,然後構建了包。

創建包:

curl -f -N -u ${USER}:${PASS} -d "packageName=${PACKAGE}&groupName=${GROUP}" "${CMS_HOST}/crx/packmgr/service/exec.json?cmd=create"

應用過濾器:

curl -f -N -u ${USER}:${PASS} -F "path=/etc/packages/${GROUP}/${PACKAGE}.zip" -F "packageName=${PACKAGE}" -F "groupName=${GROUP}" -F "version=" -F "description=" -F "thumbnail=" -F "filter=${FILTER}" -F "_charset_=UTF-8" "${CMS_HOST}/crx/packmgr/update.jsp"

構建軟件包:

curl -f -N -u ${USER}:${PASS} -d "cmd=build" "${CMS_HOST}/crx/packmgr/service/script.html/etc/packages/${GROUP}/$PACKAGE.zip"

我想要做什麼添加更多的過濾器這個包並重新構建它。

我想知道是否有方法來更新現有的軟件包。我一直在四處尋找,看看我們如何做到這一點,但失敗了。有人可以幫幫我嗎?

謝謝。

更新:添加了我使用的CURL命令。

回答

2

在這裏你用一個例子去的地方我有已經有兩個過濾器 Package with filters

要添加另一個過濾器

創建過濾節點的CURL

curl --data jcr:primaryType=nt:unstructured --user admin:admin http://localhost:4502/etc/packages/my_packages/testcurl.zip/jcr:content/vlt:definition/filter/f2 

添加過濾器屬性

curl -u admin:admin -Froot="/content/geometrixx-outdoors/en/toolbar" http://localhost:4502/etc/packages/my_packages/testcurl.zip/jcr:content/vlt:definition/filter/f2.rw.html 

IF需要添加額外的性能(即「模式」 & 「規則」)爲默認包行爲

curl -u admin:admin -Fmode="replace" http://localhost:4502/etc/packages/my_packages/testcurl.zip/jcr:content/vlt:definition/filter/f2.rw.html 

curl -u admin:admin [email protected]="String[]" -Frules=" " -Frules=" "http://localhost:4502/etc/packages/my_packages/testcurl.zip/jcr:content/vlt:definition/filter/f2.rw.html 

最後建立自己的包來影響更多的過濾器添加到您現有的包

curl -u admin:admin -X POST http://localhost:4502/crx/packmgr/service/.json/etc/packages/my_packages/testcurl.zip?cmd=build 

​​

+0

感謝您的回覆。這有助於很多:) – Blueboye

+0

現在,我正在Ruby中編寫腳本並將CURL命令轉換爲POST請求。我可以讓所有的工作除了curl -u admin:admin -Frules @ TypeHint =「String []」-Frules =「」-Frules =「」http:// localhost:4502/etc/packages/my_packages/testcurl.zip /jcr:content/vlt:definition/filter/f2.rw.html。我無法通過「規則」數組。任何想法我怎麼能做到這一點? – Blueboye

1

所有包都存儲在/etc/packages/my_packages路徑下,可以通過標準捲曲命令修改節點管理路徑。所有軟件包都有過濾器作爲子節點。

所有包管理器命令通過/crx/packmgr/service.jsp?cmd=help

例如可用,爲了構建一個軟件包使用/crx/packmgr/service.jsp?cmd=build

+0

是。我去過那裏。我用我使用的CURL命令更新了我的問題。一旦我構建了這個包,如果我想爲SAME包添加更多的過濾器,我該怎麼做?目前,如果我運行上面提到的「應用過濾器」命令,它會覆蓋現有的過濾器。它看起來像是在某種覆蓋模式而不是更新/附加模式。 – Blueboye

+0

您可以使用捲曲數據後類似'curl --data「jcr:primaryType = nt:unstructured&mode = replace」--user /etc/packages/my_packages/ .zip/jcr:content/vlt:definition/filter/** f0 **'其中** f0 **是您要添加的新過濾器的路徑。所有新過濾器都添加爲f ** N **,其中** N **爲增量 –