{"id":37853101,"url":"https://github.com/paulscherrerinstitute/scicat-cli","last_synced_at":"2026-07-22T10:01:05.326Z","repository":{"id":225862509,"uuid":"761662330","full_name":"paulscherrerinstitute/scicat-cli","owner":"paulscherrerinstitute","description":"Command line tools for interacting with the PSI SciCat data catalog","archived":false,"fork":false,"pushed_at":"2026-07-21T16:53:56.000Z","size":3851,"stargazers_count":3,"open_issues_count":35,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-07-21T18:27:35.691Z","etag":null,"topics":["fairdata","paulscherrerinstitute","repository"],"latest_commit_sha":null,"homepage":"https://scicatproject.github.io/documentation/Ingestor/ingestManual.html","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paulscherrerinstitute.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-02-22T08:53:45.000Z","updated_at":"2026-07-21T16:53:59.000Z","dependencies_parsed_at":"2024-03-12T14:36:32.757Z","dependency_job_id":"bf12600e-e2f3-408d-a667-9b7040c30d0c","html_url":"https://github.com/paulscherrerinstitute/scicat-cli","commit_stats":null,"previous_names":["paulscherrerinstitute/scicat-cli"],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/paulscherrerinstitute/scicat-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulscherrerinstitute%2Fscicat-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulscherrerinstitute%2Fscicat-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulscherrerinstitute%2Fscicat-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulscherrerinstitute%2Fscicat-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paulscherrerinstitute","download_url":"https://codeload.github.com/paulscherrerinstitute/scicat-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulscherrerinstitute%2Fscicat-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35757404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-22T02:00:06.236Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":["fairdata","paulscherrerinstitute","repository"],"created_at":"2026-01-16T16:21:26.957Z","updated_at":"2026-07-22T10:01:05.086Z","avatar_url":"https://github.com/paulscherrerinstitute.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SciCat CLI tools\n\n## Building\n\n### General Information\n\nFor testing, build the CLI tool as follows:\n\n```sh\ncd cmd\ngo build -o scicat-cli\n```\n\nThe CLI is built automatically by CI upon tagging and can be downloaded from the [Releases](https://github.com/paulscherrerinstitute/scicat-cli/releases) section of this repo.\n\nTo build the applications and target architectures locally, use GoReleaser. Check `.goreleaser.yaml` to see the configurations.\nTo use GoReleaser, you can run the command `goreleaser release --snapshot --clean` in your terminal. This will build the binaries, create the archives and generate the changelog. The `--snapshot flag` ensures that no publishing will happen.\nBefore running this command, you should ensure that you have [installed GoReleaser](https://goreleaser.com/install/).\n\nTools are compiled for the following architectures:\n\n- linux / amd64\n- windows / amd64\n- macos / universal\n\nThese can be cross-compiled from any system.\n\n### Testing\n\nRun all tests:\n\n```sh\ngo test ./...\n```\n\nLint requires golangci-lint version v2.1.0:\n\n```sh\ngolangci-lint run\n```\n\n## V3 Changes\n\nThe separate executables (like `datasetIngestor`, `datasetRetriever`...) were combined into one `scicat-cli` executable, with each executable's features available as commands given as the first parameter to this executable.\n\nThese commands bear the same names as the former executables. The general syntax change is that if you called `./[COMMAND] [flags]` before, now it's `./scicat-cli [COMMAND] [flags]`.\n\n Furthermore, the use of single hyphen, multi-letter flags is now discontinued, as it went against general convention. So, in practical terms, `-[long_flag_name]` and `--[long_flag_name]` were both accepted, but now only the latter is accepted.\n\n### Backwards compatibility with v2\n\nA set of shell scripts are included with releases that are compatible with Linux and Mac executables in order to maintain compatibility with preexisting automation scripts.\nAs these are written in BASH, Windows is not supported unless WSL2 is used.\n\nUsage informations:\n\n- The scripts can be found on the [Releases](https://github.com/paulscherrerinstitute/scicat-cli/releases) page, under scicat-cli_V2Scripts-[VERSION].tar.gz\n- Just extract the archive into the folder with the scicat-cli executable\n- The scripts and the scicat-cli executable **must** be kept in the **same folder** for them to work\n- The scripts will still accept single hyphen flags as well\n\n## Deployment\n\nPSI deploys tools to the following locations.\n\n### Pmodule\n\nThis provides the tools to the PSI clusters (ra and merlin) and linux workstations.\n\nDetailed instructions are provided with the [datacatalog\nbuildblock](https://github.com/Pmodules/buildblocks/tree/master/Tools/datacatalog).\n\nThe module downloads the latest release. It can be run from any linux system with AFS\naccess. Spencer typically uses `pmod7.psi.ch` as his `-adm` user for building modules.\n\n```bash\ncd buildblocks/Tools/datacatalog\nkinit\naklog\n# optionally update files/variants.Linux to new version\n# the following may be needed first:\n#export PMODULES_TMPDIR=/var/tmp/$USER\nmodule load Pmodules/1.0.0\n./build 1.1.10 -f\n```\n\nAs described in the buildblock README, the\nSciCat GUI needs to be compiled separately and manually copied to AFS.\n\n### Manual deployment and upgrade\n\nThis can be followed to deploy or upgrade the tool manually:\n\n1. Go to the GitHub [releases page](https://github.com/paulscherrerinstitute/scicat-cli/releases)\n\n2. Choose the release of interest (`latest` is recommended)\n\n3. Download the file from the `Assets` of the chosen release, making sure to select the one compatible with your OS\n\n4. Decompress the asset\n\n5. Open the folder and run the required APP (grant `execute` permissions if required)\n\n#### One liner for Linux systems\n\n```bash\ncurl -s 'https://api.github.com/repos/paulscherrerinstitute/scicat-cli/releases/latest' \\\n    | jq -r '.assets[].browser_download_url | select(test(\"Linux\"))' \\\n    | wget -qi - -O - \\\n    | tar -xz\n```\n\nThe latest binaries will be downloaded to `scicat-cli_*/`.\n\n### Beamline consoles\n\nNote: *Outdated instructions*\n\nDeploy linux versions to online beamline consoles (you need to have write access rights):\n\n```bash\ncd linux\nscp datasetArchiver datasetIngestor datasetRetriever  datasetGetProposal datasetCleaner SciCat egli@gfa-lc.psi.ch:/work/sls/bin/\n```\n\n### PBAIngest Server\n\nDeploy linux versions to the ingest server pbaingest01. This is usually done by Michael\nKallmeier-Glanz.\n\n```bash\nssh egli@pbaingest01.psi.ch\ncd bin/\ncurl -s https://api.github.com/repos/paulscherrerinstitute/scicat-cli/releases/latest \\\n| grep \"browser_download_url.*Linux.*tar.gz\" \\\n| cut -d : -f 2,3 \\\n| tr -d \\\" \\\n| wget -qi -\ntar -xzf scicat-cli_*_Linux_x86_64.tar.gz\nchmod +x datasetIngestor datasetArchiver datasetGetProposal\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulscherrerinstitute%2Fscicat-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaulscherrerinstitute%2Fscicat-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulscherrerinstitute%2Fscicat-cli/lists"}