paint-brush
Indlela ye-DevOps kumaPhakheji e-AEM: Ukuzidalela Okuzenzakalelayo, Ukumisa, Nokunyenge@realgpp
Umlando omusha

Indlela ye-DevOps kumaPhakheji e-AEM: Ukuzidalela Okuzenzakalelayo, Ukumisa, Nokunye

nge Giuseppe Baglio11m2025/02/16
Read on Terminal Reader

Kude kakhulu; Uzofunda

Iskripthi sokuthi `create-remote-aem-pkg.sh sisebenzisa ngokuzenzakalelayo ukusebenzisana ne-AEM's Package Manager API, sinikeza indlela ehlelekile yokudala iphakheji, ukumisa, nokusabalalisa. Idizayinelwe abathuthukisi nabaphathi, ingena esikhundleni sokugeleza komsebenzi okwenziwa ngesandla ngenqubo eqhutshwa ngomugqa womyalo egcizelela ukungaguquguquki nokuthembeka.
featured image - Indlela ye-DevOps kumaPhakheji e-AEM: Ukuzidalela Okuzenzakalelayo, Ukumisa, Nokunye
Giuseppe Baglio HackerNoon profile picture

Amaphakheji e-Adobe Experience Manager (AEM) angamaqhawe angaqashiwe okuphatha okuqukethwe - iziqukathi ezinamandla ezihlanganisa yonke into kusukela kukhodi nokulungiselelwa kuya kokuqukethwe okubalulekile. Kodwa masibhekane nakho: ukwenza mathupha, ukumisa, nokulanda lawa maphakheji kungase kuzwakale njengomdanso oyisicefe wokuchofoza.


Kuthiwani uma ubungenza le nqubo ngokuzenzakalelayo ngokuchofoza izinkinobho ezimbalwa, uqinisekise ukuvumelana, isivinini, ukwethembeka, kanye nokuphakamisa okusindayo okuncane?


Ngizokubonisa iskripthi se-Bash esiphenyisisa iskripthi (i-pun ihlosiwe!) sokuthi onjiniyela be-AEM nabaphathi basebenza kanjani ne-Package Manager API. Cabanga ngokwenza amaphakheji ngamasekhondi, ukuthunga izihlungi endizeni, kanye nokugoqa izipele ngokunemba kokuhlinzwa - konke ngaphambi kokuba ikhofi lakho liphole lifinyelele kulelo zinga lokushisa elihle kakhulu . ☕


Ngaphambi kokuthi sicwilise, inothi elisheshayo : Lesi sihloko siwukucwila okujulile, okunemininingwane ecokeme futhi okunobuchwepheshe obungenanjongo. Sizohlukanisa ukucabanga kombhalo, sihlole izinto eziyinkimbinkimbi ze-AEM API, futhi sixazulule amacala onqenqema. Konjiniyela abamagange ukugxumela ngqo kukhodi, ungagxumela phansi kwesihloko. Kodwa uma ulapha ukuze uqonde ukuthi kanjani futhi kungani ngemuva kwe-automation, bopha phakathi - sehla njalo ngembobo kanogwaja. 🕳️

1. Uhlolojikelele Lweskripthi

Iskripthi create-remote-aem-pkg.sh sisebenza ngokuzenzakalelayo ukusebenzisana ne-AEM's Package Manager API, sinikeza indlela ehlelekile yokudala iphakheji, ukumisa, nokusabalalisa. Idizayinelwe abathuthukisi nabaphathi, ingena esikhundleni sokugeleza komsebenzi okwenziwa ngesandla ngenqubo eqhutshwa ngomugqa womyalo egcizelela ukungaguquguquki nokuthembeka.

1.1 Imisebenzi ewumgogodla

  • Ukuqinisekisa Iphakheji : Ihlola amaphakheji akhona ukuze igweme ukuphinda isetshenziswe ngaphambi kokuqala ukudala.
  • Umjovo Wesihlungi Esinamandla : Ichaza ngokohlelo izindlela zokuqukethwe (isb, /content/dam , /apps ) ukuze zifakwe kuphakheji.
  • Yakha Okuzenzakalelayo : Icupha ukuhlanganiswa kwephakheji futhi ilande okukhiphayo kumkhombandlela othile, ifake isitembu sesikhathi kumagama wefayela ukuze ulawule inguqulo.
  • Ukuphatha Iphutha : Iqinisekisa izimpendulo ze-HTTP, izindlela zefolda, kanye nokuqinisekisa ukuze kuhlinzekwe impendulo engenzeka ngesikhathi sokuhluleka.
  • Ukuqinisekisa : Isekela ukuqinisekiswa okuyisisekelo¹ okusekelwe kumininingwane nge curl .

1.2 Izinzuzo Ezibalulekile

  • Ukusebenza kahle : Yehlisa izinyathelo ezenziwa ngesandla ezidingekayo ekudalweni kwephakheji, ukulungisa, nokulanda.
  • Ukungaguquguquki : Iqinisekisa izakhiwo zephakheji ezifanayo kanye nezimiso zokuqamba amagama kuzo zonke izindawo.
  • Ukulandeleka : Ukugawulwa okunemininingwane esigabeni ngasinye (ukudala, ukuhlunga, ukwakha, ukulanda) kusiza ekucwaningeni nasekuxazululeni izinkinga.

1.3 Izicelo Ezisebenzayo

  • Izipele Ezihleliwe : Hlanganisa nemisebenzi ye-cron ukuze ubeke kungobo yomlando izindlela zokuqukethwe ezibalulekile.
  • Ukuvumelanisa Imvelo : Phinda ukulungiselelwa noma okuqukethwe phakathi kwezimo ze-AEM phakathi nokuthunyelwa.
  • Buyekeza kusengaphambili Izifinyezo : Thwebula izimo ezizinzile ze- /etc noma /apps ngaphambi kokufaka izibuyekezo zesistimu.

1.4 Okudingekayo

  • Ukufinyelela kusibonelo se-AEM (imininingwane, iseva, imbobo).
  • Ukujwayelana okuyisisekelo ne-Bash scripting kanye nomphathi wephakheji we-AEM.
  • Imvume yokudala nokulanda amaphakheji nge-AEM API.

1.5 Ukusetshenziswa kwesibonelo

 ./create-remote-aem-pkg.sh admin securepass123 localhost 4502 backup-group "Content Backup" /backups /content/dam /etc/clientlibs


Lo myalo udala iphasela eliqanjwe ngokuthi “Isipele Sokuqukethwe” ngaphansi kweqembu le backup-group , okuhlanganisa /content/dam kanye /etc/clientlibs , futhi igcina okukhiphayo kuhla lwemibhalo /backups .

2. Ukuhlukaniswa Kweskripthi

Masihlukanise iskripthi create-remote-aem-pkg.sh (ungasithola ngaphansi kwesihloko) ukuze uqonde ukuthi sihlela kanjani ukuphathwa kwephakheji ye-AEM. Sizogxila esakhiweni sayo, imisebenzi ebalulekile, kanye nokucabanga kokugeleza komsebenzi—okulungele onjiniyela abafuna ukwenza ngendlela oyifisayo noma ukulungisa iphutha lethuluzi.

2.1 Imisebenzi Esemqoka

  • _log() : Umsebenzi osetshenziswayo ofaka iziqalo zemilayezo ngezitembu zesikhathi zomzila wokuhlola ocacile.
 _log () { echo "[$(date +%Y.%m.%d-%H:%M:%S)] $1" }


Kungani kubalulekile : Iqinisekisa ukuthi zonke izenzo (isb., “Iphakheji elakhiwe”) lifakwe phakathi komongo, okwenza kube lula ukuxazulula inkinga.

  • check_last_exec() : Iqinisekisa impumelelo yemiyalo yangaphambili ngokuhlola amakhodi okuphuma nezimpendulo ze-API.
 check_last_exec () { # Checks $? (exit status) and $CURL_OUTPUT for errors if [ "$status" -ne 0 ] || [[ $output =~ .*success\":false* ]]; then _log "Error detected!"; exit 1; fi }

Kungani kubalulekile : Igwema ukwehluleka buthule ngokumisa ukwenza kumaphutha abucayi njengezinkinga zokuqinisekisa noma izindlela ezingavumelekile.

2.2 Amapharamitha Wokufaka

Umbhalo wamukela ama-agumenti ezindawo eziyisikhombisa alandelwa izihlungi eziguqukayo:

 USR="$1" # AEM username PWD="$2" # AEM password SVR="$3" # Server host (eg, localhost) PORT="$4" # Port (eg, 4502) PKG_GROUP="$5" # Package group (eg, "backups") PKG_NAME="$6" # Package name (eg, "dam-backup") BK_FOLDER="$7" # Backup directory (eg, "/backups") shift 7 # Remaining arguments become filters (eg, "/content/dam")


Izimpikiswano zokuma ziqinisekisa ubulula, kuyilapho shift iphatha izindlela zokuhlunga eziguquguqukayo kalula.

2.3 Ukuqinisekiswa Kwephakheji Nokudala

  • Hlanza Amagama : Ifaka esikhundleni sezikhala ku PKG_NAME ngama-underscore ukuze kugwenywe izinkinga ze-URL.
 PKG_NAME=${PKG_NAME// /_}
  • Hlola Amaphakheji Akhona : Isebenzisa curl ukuze ifake uhlu lwamaphakheji nge-API ye-AEM, igwema ukudalwa okungafuneki.
 if [ $(curl ... | grep "$PKG_NAME.zip" | wc -l) -eq 1 ]; then _log "Package exists—skipping creation." else curl -X POST ... # Creates the package fi

2.4 Ukucushwa Kwesihlungi Esinamandla

Yakha izihlungi ze-JSON eziphuma ezindleleni zokufaka:

 FILTERS_PARAM="" for i in "${!FILTERS[@]}"; do FILTERS_PARAM+="{\"root\": \"${FILTERS[$i]}\", \"rules\": []}" # Adds commas between entries, but not after the last done


Isibonelo esiphumayo :

[{"root": "/content/dam"}, {"root": "/apps"}]

Le JSON ifakwa encazelweni yephakheji nge-AEM's /crx/packmgr/update.jsp endpoint.

2.5 Yakha futhi Udawunilode ukuhamba komsebenzi

  • Yakha Iphakheji : Icupha ukuhlanganiswa kusetshenziswa umyalo build we-AEM:

curl -X POST … -F "cmd=build"


Qaphela : Umbhalo ulinda ukuthi ukwakhiwa kuqedwe ngaphambi kokuqhubeka.

  • Ukulanda : Isebenzisa curl ukuze ilande .zip futhi iyilondoloze ngegama lefayela elinesitembu sesikhathi:
 BK_FILE="$PKG_NAME-$(date +%Y%m%d-%H%M%S).zip" curl -o "$BK_FOLDER/$BK_FILE" ...

3. Ukuphatha Iphutha, Amanothi Okuvikela, Nokungena

Ukuphatha amaphutha aqinile nokuloga kubalulekile kumaskripthi angagadiwe afana create-remote-aem-pkg.sh , ukuqinisekisa ukuthi ukwehluleka kubanjwa kusenesikhathi futhi kufakwe ngokusobala. Nansi indlela iskripthi sivikela ngayo ezinkingeni ezingalindelekile futhi sinikeza imininingwane engenzeka.

3.1 Indlela Yokugawula

  • Amalogi anesitembu sesikhathi : Umsebenzi _log ufaka isiqalo somlayezo wonke ngesitembu sesikhathi esingu- [YYYY.MM.DD-HH:MM:SS] , udala umzila wokuhlola wokususa iphutha:

_log "Starting backup process..." # Output: [2023.10.25-14:30:45] Starting backup process...


Kungani kubalulekile : Izitembu zesikhathi zisiza ukuhlobanisa umsebenzi weskripthi namalogu eseva ye-AEM noma imicimbi yangaphandle (isb, amashejuli emisebenzi ye-cron).

  • I-Verbose Output : Izinyathelo ezibalulekile, njengokwenza iphakheji, ukubuyekezwa kwesihlungi, nokulandiwe, kufakwe ngokusobala ukuze kulandelelwe ukuqhubeka.

3.2 Ukuqinisekisa Ukuhamba Kokusebenza Kwephutha

Ukuhlola Ngaphambi Kokundiza :

  • Iqinisekisa ubukhona befolda eyisipele ( BK_FOLDER ) ngaphambi kokuqhubeka:
 if [ ! -d "$BK_FOLDER" ]; then _log "Backup folder '$BK_FOLDER' does not exist!" && exit 1 fi
  • Ihlanza PKG_NAME ukuze igweme izinkinga ze-URL (isb, izikhala ezithathelwa indawo ama-underscore).


Ukuqinisekiswa Kwempendulo ye-API :

Umsebenzi check_last_exec uhlola womabili amakhodi okuphuma egobolondweni ( $? ) kanye nezimpendulo ze-AEM API:

check_last_exec "Error message" "$CURL_OUTPUT" $CURL_STATUS

  • Phuma Kumakhodi : Amanani angewona aziro (isb, ukwehluleka kwenethiwekhi ye- curl ) aqala ukuphuma ngokushesha.


  • Amaphutha e-API : Ithola success\":false noma iyunithi yezinhlamvu ethi "HTTP ERROR" ekuphumeni kwe-AEM.


3.3 Ukuqinisekiswa Kwesimo Se-HTTP : Lapho ulanda iphakheji, umbhalo uhlola ikhodi yesimo 200 :

 if [ "$(curl -w "%{http_code}" ...)" -eq "200" ]; then # Proceed if download succeeds else _log "Error downloading the package!" && exit 1 fi

3.4 Izimo Zokwehluleka Okujwayelekile

  • Ukuqinisekisa okungavumelekile: check_last_exec ibamba izimpendulo 401 Unauthorized futhi iphuma ngomlayezo wephutha ocacile.
  • Indlela yokuhlunga engavumelekile: I-AEM API ibuyisela success:false , amalogi ombhalo "Iphutha lokwengeza izihlungi" futhi iyanqamula.
  • Idiski igcwele: Yehlulekile ukubhala BK_FILE , ihlola usayizi wefayela nge -s ifulegi kanye nezixwayiso ngaphambi kokuphuma.
  • Isibonelo se-AEM asifinyeleleki: curl iphuma ngekhodi okungelona uziro, umbhalo ubhalwe ukuthi "Iphutha ekwakheni iphakheji".

3.5 Imibandela Yokuphepha

  • I-SSL Certificate Bypass : Iskripthi sisebenzisa curl -k ukuze kube lula, okweqa ukuqinisekiswa kwe-SSL. Isincomo Sokukhiqiza : Faka esikhundleni ngokuthi --cacert ukuze ucacise inqwaba ye-CA.


  • Amagama Ayimfihlo Ombhalo Ongenalutho : Ukuqinisekisa kuphasiswa njengezimpikiswano, ezingase zivele kulogi lwenqubo. Ukunciphisa : Sebenzisa okuguquguqukayo kwemvelo noma i-vault eyimfihlo (isb, $AEM_PASSWORD ).

3.6 Amathiphu Okususa iphutha

  • Nika amandla i-Verbose Output : Engeza okwesikhashana set -x ekuqaleni kweskripthi ukuze uphrinte imiyalo ekhishiwe.
  • Hlola Izingcingo ze-API Mathupha : Hlukanisa izinkinga ngokusebenzisa imiyalo curl ebalulekile ngaphandle kweskripthi
  • Hlola Amalogi : Qondisa kabusha okukhishwayo kweskripthi efayeleni ukuze kuhlaziywe kamuva:

./create-remote-aem-pkg.sh ... >> /var/log/aem_backup.log 2>&1

4. Ukwenza Ithuluzi lihambisane nokuhamba kwakho komsebenzi

Iskripthi create-remote-aem-pkg.sh siklanyelwe ukuba isiqalo—isisekelo ongakwazi ukusishintsha ukuze sihambisane nezidingo zeqembu lakho. Ngezansi kukhona ukwenza ngokwezifiso okuvamile, kanye neziqondiso zokusetshenziswa, ukuze kunwetshwe ukusebenza kwayo noma kuzivumelanise nezimo ezithile zokusetshenziswa.

4.1 Ukulungisa Ifomethi Yegama Lefayela Eyisipele

Igama lefayela elizenzakalelayo lisebenzisa isitembu sesikhathi ( $PKG_NAME-$(date +%Y%m%d-%H%M%S).zip ). Lungisa lokhu ukuze ufake amagama emvelo, ama-ID wephrojekthi, noma inguqulo ye-semantic:

 # Example: Include environment (eg, "dev", "prod") BK_FILE="${PKG_NAME}-${ENV}-$(date +%Y%m%d).zip" # Example: Add Git commit SHA for traceability COMMIT_SHA=$(git rev-parse --short HEAD) BK_FILE="${PKG_NAME}-${COMMIT_SHA}.zip"

Ithiphu : Qinisekisa ukuthi amafomethi osuku/isikhathi agwema izinhlamvu ezenqatshelwe emagameni wefayela (isb., amakholoni : ku-Windows).

4.2 Ukwandisa noma Ukuguqula Izihlungi

Iskripthi samukela izindlela eziguquguqukayo njengezihlungi kodwa ungakwazi futhi ukufaka ikhodi eqinile izindlela ezisetshenziswa njalo noma wengeze okungafakwanga:

 # Hardcode essential paths (eg, "/var/audit") DEFAULT_FILTERS=("/content/dam" "/apps" "/var/audit") FILTERS=("${DEFAULT_FILTERS[@]}" "${@}") # Merge with command-line inputs # Add exclusion rules (requires AEM API support) FILTERS_PARAM+="{\"root\": \"${FILTERS[$i]}\", \"rules\": [{\"modifier\": \"exclude\", \"pattern\": \".*/test/*\"}]}"

4.3 Ukuthuthukisa Ezokuphepha


Gwema Amagama Ayimfihlo Ayimfihlo :

Sebenzisa okuguquguqukayo kwendawo noma umphathi wezimfihlo ukuze ujove izifakazelo:

 # Fetch password from environment variable PWD="$AEM_PASSWORD" # Use AWS Secrets Manager (example) PWD=$(aws secretsmanager get-secret-value --secret-id aem/prod/password --query SecretString --output text)


Qinisekisa ukuqinisekiswa kwe-SSL :
Faka esikhundleni curl -k (engavikelekile) ngesitifiketi se-CA esithenjwayo:

 curl --cacert /path/to/ca-bundle.crt -u "$USR":"$PWD" ...

4.4 Ukwengeza Izenzo Ngemva Kokwakha

Nweba umbhalo ukuze uqalise izinqubo eziya phansi ngemva kokulanda ngempumelelo:

 # Example: Upload to cloud storage aws s3 cp "$BK_FOLDER/$BK_FILE" s3://my-backup-bucket/ # Example: Validate package integrity CHECKSUM=$(sha256sum "$BK_FOLDER/$BK_FILE" | cut -d ' ' -f 1) _log "SHA-256 checksum: $CHECKSUM" # Example: Clean up old backups (retain last 7 days) find "$BK_FOLDER" -name "*.zip" -mtime +7 -exec rm {} \;

4.5 Ukwengeza Izaziso

Yazisa amaqembu ngempumelelo/ukwehluleka nge-Slack, i-imeyili, noma amathuluzi okuqapha:

 # Post to Slack on failure curl -X POST -H 'Content-type: application/json' \ --data "{\"text\":\"🚨 AEM backup failed: $(hostname)\"}" \ https://hooks.slack.com/services/YOUR/WEBHOOK/URL # Send email via sendmail if [ $? -ne 0 ]; then echo "Subject: Backup Failed" | sendmail [email protected] fi

5. Isiphetho

Ukuphatha amaphakheji e-AEM akudingeki kube umsebenzi owenziwa ngesandla, onephutha. Ngeskripthi create-remote-aem-pkg.sh , ungakwazi ukuguqula ukudalwa kwephakheji, ukuhlunga, nokusabalalisa kube inqubo elula, ephindaphindwayo. Leli thuluzi alikona nje ukonga isikhathi, limayelana nokunika amandla ukungaguquguquki, ukwethembeka, kanye nokulinganisa emisebenzini yakho ye-AEM.

Okuthathwayo Okubalulekile

  1. Okuzenzakalelayo Kuyawina : Ngokususa ukusebenzisana okuphindaphindayo kwe-GUI, umbhalo wehlisa amaphutha abantu futhi ukhulula amaqembu ukuthi agxile emisebenzini yenani eliphezulu.


  2. Izindaba Ezivumelana Nezimo : Noma ngabe yenza ikhophi yasenqolobaneni yokuqukethwe okubalulekile, izindawo zokuvumelanisa, noma ukulungiselela izibuyekezo, umbhalo uzivumelanisa nezimo ezihlukahlukene zokusetshenziswa ezinokulungiswa okuncane.


  3. Ukuqina Kungukhiye : Ukungena okwakhelwe ngaphakathi, ukuhlolwa kwamaphutha, nokucatshangelwa kokuvikeleka kuqinisekisa ukuthi iskripthi siziphatha ngendlela ebikezelwayo, noma ngabe izinto ziya eceleni.


Amathuluzi amahle azalwa ngezinselele zomhlaba wangempela. Lesi script siyisiqalo; kucabange njengesisekelo ongakhela phezu kwaso njengoba izidingo zeqembu lakho zikhula. Kungakhathaliseki ukuthi ungunjiniyela oyedwa noma uyingxenye yeqembu elikhulu le-DevOps, ukuzenzela okufana nalokhu kuyisibonelo sokuthi ukutshalwa kwezimali okuncane kwekhodi kungaletha izinzuzo ezinkulu ekukhiqizeni nasekuthuleni kwengqondo.


Ulungele ukuthatha isinyathelo esilandelayo?

  • 🛠️ Enza ngendlela oyifisayo : Hlela umbhalo usebenzisa iSigaba 6 njengomhlahlandlela wakho.
  • 🔍 Ukuhlola : Buyekeza ukuhamba komsebenzi kwakho okukhona kwe-AEM ukuze uthole amathuba okuzenzakalela.
  • 🤝 Yabelana : Qondisa ithimba lakho noma ubhale iposi lebhulogi mayelana nezinguqulo zakho.


Siyabonga ngokulandela - manje phuma wenze ngokuzenzakalela! 🚀

Isithasiselo

Qedela Ikhodi

 #!/bin/bash set -eo pipefail # The script will create a package thought the package manager api: # - The package is created, if not already present # - Package filters are populated accordingly to specified paths # - Package is builded # - Package is download to the specified folder _log () { echo "[$(date +%Y.%m.%d-%H:%M:%S)] $1" } check_last_exec () { local message="$1" local output="$2" local status=$3 if [ "$status" -ne 0 ]; then echo && echo "$message" && echo exit 1 fi if [[ $output =~ .*success\":false* ]] || [[ $output =~ .*"HTTP ERROR"* ]]; then _log "$message" exit 1 fi } USR="$1" PWD="$2" SVR="$3" PORT="$4" PKG_GROUP="$5" PKG_NAME="$6" BK_FOLDER="$7" shift 7 # The following paths will be included in the package FILTERS=($@) BK_FILE=$PKG_NAME"-"$(date +%Y%m%d-%H%M%S).zip _log "Starting backup process..." echo "AEM instance: '$SVR':'$PORT' AEM User: '$USR' Package group: $PKG_GROUP Package name: '$PKG_NAME' Destination folder: $BK_FOLDER Destination file: '$BK_FILE' Filter paths: " printf '\t%s\n\n' "${FILTERS[@]}" if [ ! -d "$BK_FOLDER" ]; then _log "Backup folder '$BK_FOLDER' does not exist!" && echo exit 1 fi PKG_NAME=${PKG_NAME// /_} check_last_exec "Error replacing white space chars from package name!" "" $? || exit 1 _log "Removed whitespaces from package name: '$PKG_NAME'" BK_FILE=$PKG_NAME.zip _log "Backup file: '$BK_FILE'" _log "Creating the package..." if [ $(curl -k -u "$USR":"$PWD" "$SVR:$PORT/crx/packmgr/service.jsp?cmd=ls" 2>/dev/null | grep "$PKG_NAME.zip" | wc -l) -eq 1 ]; then _log " Package '$PKG_GROUP/$PKG_NAME' is already present: skipping creation." else curl -k --silent -u "$USR":"$PWD" -X POST \ "$SVR:$PORT/crx/packmgr/service/.json/etc/packages/$PKG_GROUP/$PKG_NAME?cmd=create" \ -d packageName="$PKG_NAME" -d groupName="$PKG_GROUP" check_last_exec " Error creating the package!" "" $? _log " Package created" fi # create filters variable FILTERS_PARAM="" ARR_LEN="${#FILTERS[@]}" for i in "${!FILTERS[@]}"; do FILTERS_PARAM=$FILTERS_PARAM"{\"root\": \"${FILTERS[$i]}\", \"rules\": []}" T=$((i+1)) if [ $T -ne $ARR_LEN ]; then FILTERS_PARAM=$FILTERS_PARAM", " fi done # add filters _log "Adding filters to the package..." CURL_OUTPUT=$(curl -k --silent -u "$USR":"$PWD" -X POST "$SVR:$PORT/crx/packmgr/update.jsp" \ -F path=/etc/packages/"$PKG_GROUP"/"$PKG_NAME".zip -F packageName="$PKG_NAME" \ -F groupName="$PKG_GROUP" \ -F filter="[$FILTERS_PARAM]" \ -F "_charset_=UTF-8") CURL_STATUS=$? # Pass the status to the check_last_exec function check_last_exec "Error adding filters to the package!" "$CURL_OUTPUT" $CURL_STATUS _log " Package filters updated successfully." # build package _log "Building the package..." CURL_OUTPUT=$(curl -k -u "$USR":"$PWD" -X POST \ "$SVR:$PORT/crx/packmgr/service/script.html/etc/packages/$PKG_GROUP/$PKG_NAME.zip" \ -F "cmd=build") check_last_exec " Error building the package!" "$CURL_OUTPUT" $? _log " Package built." # download package _log "Downloading the package..." if [ "$(curl -w "%{http_code}" -o "$BK_FOLDER/$BK_FILE" -k --silent -u "$USR":"$PWD" "$SVR:$PORT/etc/packages/$PKG_GROUP/$PKG_NAME.zip")" -eq "200" ]; then if [ -f "$BK_FOLDER/$BK_FILE" ] && [ -s "$BK_FOLDER/$BK_FILE" ]; then _log " Package $BK_FILE downloaded in $BK_FOLDER." exit 0 fi fi _log " Error downloading the package!" exit 1


Izikhombo

[¹] Ukweqa ukuqinisekiswa kwe-SSL nge curl -k kuyasiza ekuhlolweni, kodwa uzofuna okuthile okuqinile ekukhiqizeni (ngokwesibonelo --cacert )!


[²] I-AEM Package Manager Imibhalo Esemthethweni