{"id":21726959,"url":"https://github.com/wttech/cq-unix-toolkit","last_synced_at":"2025-07-23T20:03:07.494Z","repository":{"id":8440159,"uuid":"10031164","full_name":"wttech/CQ-Unix-Toolkit","owner":"wttech","description":"CQ Unix Toolkit","archived":false,"fork":false,"pushed_at":"2021-01-25T14:49:30.000Z","size":529,"stargazers_count":47,"open_issues_count":17,"forks_count":23,"subscribers_count":55,"default_branch":"master","last_synced_at":"2025-06-09T12:50:28.578Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wttech.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-05-13T12:32:03.000Z","updated_at":"2025-04-19T12:16:37.000Z","dependencies_parsed_at":"2022-08-23T16:40:35.543Z","dependency_job_id":null,"html_url":"https://github.com/wttech/CQ-Unix-Toolkit","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/wttech/CQ-Unix-Toolkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wttech%2FCQ-Unix-Toolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wttech%2FCQ-Unix-Toolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wttech%2FCQ-Unix-Toolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wttech%2FCQ-Unix-Toolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wttech","download_url":"https://codeload.github.com/wttech/CQ-Unix-Toolkit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wttech%2FCQ-Unix-Toolkit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266738657,"owners_count":23976439,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-26T03:42:22.296Z","updated_at":"2025-07-23T20:03:07.464Z","avatar_url":"https://github.com/wttech.png","language":"Shell","readme":"# CQ-Unix-Toolkit\n\n![CQ Unix Toolkit logo](logo.png)\n\n## Table of contents\n\n1. Introduction\n2. Which for what? (quick description for each tool)\n3. Supported shell environments\n4. Notes on Cygwin compatibility\n5. CQ Compatibilty\n6. Installation\n7. Building an RPM package\n8. Contributors\n\n## Introduction\n\nCQ Unix Toolkit is a set of POSIX shell tools that calls curl and other 3rd\nparty commands to perform some different tasks on Adobe CQ platform such as:\n\n- Create, build, rewrite, upload, list, download, install and deletion of CRX\n  zip packages\n- Maintenance tasks: consistency checks, TarPM compaction and index merge,\n  DataStore garbage collection\n- Clear/invalidate dispatcher cache for subtree specified by `/statfilelevel`\n- Active workflow instances list\n- Display OSGI bundles list and start/stop specified bundles\n\nEach action is wrapped in separate stand-alone script with additional usage\noutput that allows to perform these tasks easily.\n\nThe toolkit aims at use only the basic built-in commands for typical UNIX/POSIX\ncompliant system to avoid installing any 3rd party custom dependencies which is\noften not possible or prohibited whilst still providing nearly all\nfunctionalities for different operating systems and different shell flavours\nlike csh/ksh/bash/dash etc.\n\nBasically almost every tool requires authorized connection to CQ instance which\nis performed by toolkit using three basic options:\n\n- -u (username)\n- -p (password)\n- -i (URL to instance) i.e. https://localhost:5510\n\n_Please note_ that there is a way to avoid the need to enter -u/-p/-i options\neach time by executing the following command in the current shell environment:\n\n    $ eval $(cqapi -L -u username -p password -i URL)\n\nPlease also note that _the password is saved in plain text_ as environmental\nvariable so every process can steal that information so such mode should be\nused only in development environment or in restricted shell process\n\nThe following example should be self descriptive:\n\n    $ eval $(cqapi -L -u admin -p admin -i http://localhost:4502)\n\nAfter you execute this command in your current shell in all cqXXX commands you\ndon't need to specify anything.\n\n# Which for what?\n\nBelow there is a list of separate tools and short purpose phrase for each one:\n\n- `cqpkg` -- Creates empty zip package on local filesystem using provided\n  specification (name, group, version, paths, filters) which is valid\n  and minimal CRX FileVault package. CQ connection not required.\n- `cqrepkg`-- Read or rewrite package definition and/or content i.e. name,\n  group etc and JCR filters\n- `cqbld` -- Builds remotely uploaded CQ package using connection parameters\n- `cqcp` -- Makes a copy of remote CQ package to your local environment\n- `cqget` -- Makes a copy of CQ resource to your local environment\n- `cqrun` -- Install uploaded CQ package on remote instance\n- `cqrev` -- Revert previously installed CQ package on remote instance (if\n  still exists)\n- `cqdel` -- Remove completely remotely available CQ package\n- `cqput` -- Upload package from your local environment\n- `cqls` -- List packages uploaded/installed in remote CQ\n- `cqchk` -- Checks remote CQ instance repository if it's consistent\n- `cqgc` -- Deletes effectively removed content from instance to reclaim free\n  space\n- `cqmrg` -- Merge CQ TarPM indexes\n- `cqtpm` -- Deletes effectively removed content from TarPM CQ storage\n- `cqwfl` -- Display active (or broken) workflow instances\n- `cqjcr` -- Browse and modify JCR tree on nodes and properties level\n- `cqosgi` -- Display bundles list and manage them by starting/stopping on demand\n- `cqcfgls` -- List configured or available (but non configured) OSGI\n  configurations\n- `cqcfg` -- Return details or modify specified OSGI configuration remotly\n- `cqcfgdel` -- Delete specified OSGI configuration\n- `cqclr` -- Simulates activation on dispatcher to clear its cache. Use dispatcher\n  URL, (not CQ one) as instance URL (-i option).\n- `cqsnp` -- Download and/or delete package installation backup/snapshot that\n  is used for uninstalling packages.\n\nEach script can be executed _without parameters_ from your terminal i.e.:\n\n        $ ./cqbld\n        Usage: cqbld [OPTION...] package-name\n        Build (rebuild) already uploaded package by group id and name in CQ Package\n        Manager using instance URL.\n\n        Examples:\n          cqbld -u admin pack            # Build package named pack\n          cqbld -u admin -g GRP pack     # Build package named pack in group GRP\n          cqbld -i http://localhost:5510 # Build package for localhost instance on tcp\n                -g com.group stuff       # port 5510 named stuff in group:com.group\n                -p secret                # with password provided: secret\n\n        Options:\n\n          -u                    use specified usernamed for connection\n          -p                    use provided password for authentication\n          -i                    use specified instance URL to connect\n          -g                    locate package by additional group ID\n\nso you can find out how to operate and specify required arguments. We are\nworking to be able to help users point correct syntax or provide suggestions\nin case of incorrect command line is passed.\n\n## Supported shell environments\n\nCurrently CQ Unix Toolkit supports only some subset of all shell environments,\nhowever that list will be improved in the next releases.\nFor each command default shell indicated by `/bin/sh` symbolic link in your system\nis used. In case of problems you can prefix command with shell name to use\nnon-default shell i.e. (`bash ./cqbld` instead of `./cqbld`).\n\n- bash (tested and fully supported)\n- dash (tested and fully supported)\n- bash on cygwin (see remarks for Cygwin in the next section below)\n- bash on Mac OS X (with sed/echo BSD versions)\n- csh (tested and fully supported on FreeBSD)\n- mksh (MirBSD Korn Shell)\n- ksh (should work like on mksh however it's not directly tested!)\n\nPlease note that `zsh` is currently _not supported at all_! You can get weird\nerrors when using this shell implementation.\n\n## Notes on Windows/Cygwin compatibility\n\nIn order to use toolkit on cygwin make sure you have marked/installed the\nfollowing cygwin packages:\n\n- `util-linux` (required for all tools)\n  ![Marking curl package](doc/cygwin1-curl.png)\n- `curl` (required for almost all tools)\n  ![Marking util-linux package](doc/cygwin2-util-linux.png)\n- `unzip`, `zip` (required for cqrepkg, cqpkg tools)\n  ![Marking zip/unzip package](doc/cygwin3-zip.png)\n\nIf you have any problems, please see [cygwin installation screencast](http://www.youtube.com/watch?v=11ilswbIjkg).\n\nTo test commands just type in command line the following expressions and\ncompare results:\n\n        $ zip -v | head -1\n        Copyright (c) 1990-2008 Info-ZIP - Type 'zip \"-L\"' for software license.\n\n        $ curl --version 2\u003e\u00261 | head -1\n        curl 7.34.0 (i686-pc-cygwin) libcurl/7.34.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.26 libssh2/1.4.2\n\n        $ column --version\n        column from the package util-linux 2.21.2\n\nPlease rememeber that files should have `\\n` endings only. Using git clone they\ncan be changed automatically to `\\r\\n` so please use one of the following\nsolutions:\n\n- Prior cloning repository change `git config` option to `core.autocrlf = false`\n\n        $ git config --global core.autocrlf input\n        $ git clone https://github.com/wttech/CQ-Unix-Toolkit.git\n\n- Prefix each call with `bash -o igncr` (temporary solution)\n\nAn example of invalid file line endings:\n\n        $ ./cqapi\n        ./cqapi: line 16: syntax error `$'\\r''\n        '/cqapi: line 16: `_usage()\n\nA quick method to fix invalid file line endings problem:\n\n        $ bash -o igncr ./cqapi\n        Usage: cqapi [OPTION...]\n        ...\n\nTo fix this _permanently_ in your code copy just enter in proper directory name:\n\n        $ dos2unix cq*\n\n## CQ Compatibilty\n\n- Compatible with CRX 2.2 or higher (but not AEM 6.0 and higher yet)\n  - cqbld\n  - cqcp\n  - cqget\n  - cqrun\n  - cqdel\n  - cqput\n  - cqls\n  - cqpkg\n- Compatible with CQ 5.5 or higher (but not AEM 6.0 and higher yet)\n  - cqchk\n  - cqgc\n  - cqmrg\n  - cqtpm\n- Compatible with CQ 5.4 or higher (but not AEM 6.0 and higher yet)\n  - cqwfl\n  - cqosgi\n  - cqclr\n\nUsing CQ Unix Toolkit with AEM 6.0 is not recommended.\n\n## Installation\n\nAbove scripts don't require special installation. If you want these CQ Unix\nToolkit to be visible system-wide you can invoke `install` script provided in\nrepository that creates symbolic link in `/usr/local/bin` directory or you can\nchange `INSTALL_DIR` variable in script if you want to something else.\n\n## Building an RPM package\n\nBefore building place `v1.1.0.tar.gz` file in SOURCES rpmbuild directory.\nThe correct URL from which file can be obtained is defined in spec file in\n`Source:` field.\n\n# Contributors\n\nI want to thank every person involved in development of this tools. Personally\nI want to thank:\n\n- Arkadiusz Kita (the original author of CQ Unix Toolkit)\n- Krzysztof Kamil Konopko (Quality Assurance - exploratory tests, usability\n  tests and improvements (against CQ5.5 \u0026 CQ5.6)\n- Bartek Szafko (project management)\n- Michał Leszczyński (infrastructure and development tools)\n- Artur Kłopotek (cygwin hints)\n- Robert Kapała (QA/improvements)\n- Tomek Rękawek (fixes and tests for Mac OS X default shell)\n\nJakub Wadolowski [at] wundermanthompson.com\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwttech%2Fcq-unix-toolkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwttech%2Fcq-unix-toolkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwttech%2Fcq-unix-toolkit/lists"}