{"id":20687742,"url":"https://github.com/klauer/engineering_tools","last_synced_at":"2025-10-08T07:52:42.083Z","repository":{"id":72187066,"uuid":"289340710","full_name":"klauer/engineering_tools","owner":"klauer","description":"A repository of scripts, configuration useful for the PCDS team","archived":false,"fork":false,"pushed_at":"2022-05-03T17:52:58.000Z","size":532,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-10T23:58:32.381Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/klauer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-21T18:39:51.000Z","updated_at":"2022-05-03T17:53:28.000Z","dependencies_parsed_at":"2023-05-31T06:45:42.697Z","dependency_job_id":null,"html_url":"https://github.com/klauer/engineering_tools","commit_stats":null,"previous_names":[],"tags_count":74,"template":false,"template_full_name":null,"purl":"pkg:github/klauer/engineering_tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klauer%2Fengineering_tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klauer%2Fengineering_tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klauer%2Fengineering_tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klauer%2Fengineering_tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/klauer","download_url":"https://codeload.github.com/klauer/engineering_tools/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klauer%2Fengineering_tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278909711,"owners_count":26066887,"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-10-08T02:00:06.501Z","response_time":56,"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":[],"created_at":"2024-11-16T22:58:08.088Z","updated_at":"2025-10-08T07:52:42.047Z","avatar_url":"https://github.com/klauer.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# engineering_tools\nA repository of scripts, configuration useful for the PCDS team\n\n## Push updates\n```\ngit push -u origin master\n```\n\n## Add Tag\n```\ngit tag -a R{tag} -m '{comment}'\n\ngit push -u origin R{tag}\n```\n\n## Creating a new release\n```\n# Clone the source code into a new folder\ngit clone https://github.com/pcdshub/engineering_tools.git R{tag}\n# Enter repository\ncd R{Tag}\n# checkout tag number\ngit checkout tags/R{tag}\n```\n\n## Updating latest\n```\n# Go to latest checkout\ncd engineering_tools\n# Pull latest from master branch\ngit pull origin master\n```\n\n## The scripts\n\n\u003ctable\u003e\n\u003ctr\u003e\n    \u003ctd\u003eami_offline_psana\u003c/td\u003e\n    \u003ctd\u003e\nusage: ami_offline_psana options\u003cbr/\u003e\n        \u003cbr/\u003e\n    We will run ami_offline\u003cbr/\u003e\n    \u003cbr/\u003e\n    OPTIONS:\u003cbr/\u003e\n    -u user (needs to be able to log into the psananeh/feh, if not on psana already)\u003cbr/\u003e\n    -e EXPNUMBER \u003cbr/\u003e\n    -R rebinning (binned to 640x640)\u003cbr/\u003e\n    -n no timetool plugin\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003earchive-status\u003c/td\u003e\n    \u003ctd\u003e\nusage: archive-status [-h] PV \u003cbr/\u003e\n        \u003cbr/\u003e\n    Return the status of the specified PV in the archiver.\u003cbr/\u003e\n    \u003cbr/\u003e\n    OPTIONS:\u003cbr/\u003e\n    -h, --help: Show the help message and exit.\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003ecamViewer\u003c/td\u003e\n    \u003ctd\u003e\nusage: /reg/g/pcds/engineering_tools/latest/scripts/camViewer options\u003cbr/\u003e\n    \u003cbr/\u003e\n    start the viewer for controls cameras\u003cbr/\u003e\n    \u003cbr/\u003e\n    OPTIONS:\u003cbr/\u003e\n    -c camera name as in camera list or gige #\u003cbr/\u003e\n    -m bring up the edm screen\u003cbr/\u003e\n    -r reboot the IOC\u003cbr/\u003e\n    -l print list of cameras\u003cbr/\u003e\n    -w # (wait for # hours to ask to renew, default 2 and 12 for GIGEs)\u003cbr/\u003e\n    -u # update rate limit (default 5)\u003cbr/\u003e\n    -H hutch: use a specific hutches camviewer config file\u003cbr/\u003e\n    -e enable camera ioc\u003cbr/\u003e\n    -d disable camera ioc\u003cbr/\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003echeck_host\u003c/td\u003e\n    \u003ctd\u003e\nUsage:   /reg/g/pcds/engineering_tools/latest/scripts/check_host HOSTNAME\u003cbr/\u003e\n    \u003cbr/\u003e\n    Display host info and run some checks.\u003c/br\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003econfigdb_readxtc\u003c/td\u003e\n    \u003ctd\u003e\nusage: configdb_readxtc options\u003cbr/\u003e\n        \u003cbr/\u003e\n    We will run configdb_readxtc\u003cbr/\u003e\n    \u003cbr/\u003e\n    OPTIONS:\u003cbr/\u003e\n    -u user (needs to be able to log into the psananeh/feh)\u003cbr/\u003e\n    -e expnumber \n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003edaq_control\u003c/td\u003e\n    \u003ctd\u003e\n daq_control COMMAND TARGET\u003cbr/\u003e\n     COMMAND : { start, stop, restart, status }\u003cbr/\u003e\n     TARGET  : { daq, ami }\u003cbr/\u003e\n     COMMAND : ami\u003cbr/\u003e\n     TARGET  : { [0], 1 }\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003edaq_waitwin\u003c/td\u003e\n    \u003ctd\u003e\nWaits for the LCLS-I daq windows to load, then exits.\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003edev_conda\u003c/td\u003e\n    \u003ctd\u003e\n Source this to activate a pcds conda environment.\u003cbr/\u003e\n     By default, this activates the latest environment.\u003cbr/\u003e\n     Use export PCDS_CONDA_VER=VERSION before running to pick a different env.\u003cbr/\u003e\n     Pick up EPICS environment variable settings just in case user did not\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003eeloggrabber\u003c/td\u003e\n    \u003ctd\u003e\nusage: eloggrabber options\u003cbr/\u003e\n        \u003cbr/\u003e\n    start the eloggrabber, by default look at current exp\u003cbr/\u003e\n    \u003cbr/\u003e\n    OPTIONS:\u003cbr/\u003e\n    -e pass in an experiment to look at\u003cbr/\u003e\n    -x instrument logbook\u003cbr/\u003e\n    -c controls logbook\u003cbr/\u003e\n    -u username\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd\u003eepicsArchChecker\u003c/td\u003e\n    \u003ctd\u003e\nusage: epicsArchChecker [-h] [-w] [-s] filepath \u003cbr/\u003e\n        \u003cbr/\u003e\nChecks epicsArch files for mismatches of PVs and aliases, missing files, and unconnected PVs.\n        \u003cbr/\u003e\n        \u003cbr/\u003e\npositional arguments:\u003cbr/\u003e\n  filepath        Full filepath of the file to check e.g /reg/g/pcds/dist/pds/xpp/misc/epicsArch.txt\n        \u003cbr/\u003e\n        \u003cbr/\u003e\noptional arguments:\u003cbr/\u003e\n  -h, --help      show this help message and exit\u003cbr/\u003e\n  -w, --warnings  Displays: -Pvs and Aliases duplicated. -Pvs with no alias and aliases no Pvs.\u003cbr/\u003e\n  -s, --status    Displays Pvs not connected.\u003cbr/\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd\u003eget_curr_exp\u003c/td\u003e\n    \u003ctd\u003e\nusage: get_curr_exp options\u003cbr/\u003e\n        \u003cbr/\u003e\n    OPTIONS:\u003cbr/\u003e\n    -l add live status\u003cbr/\u003e\n    -i/H information for hutch (override autodetection)\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003eget_hutch_name\u003c/td\u003e\n    \u003ctd\u003e\nReturns the hutch name based on the host it is run on. See `get_info` for more information.\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003eget_info\u003c/td\u003e\n    \u003ctd\u003e\nusage: get_info [-h] [--run] [--exp] [--live] [--ended] [--hutch HUTCH]\u003cbr/\u003e\n                    [--station STATION] [--getHutch] [--gethutch] [--getstation]\u003cbr/\u003e\n                    [--getbase] [--getinstrument] [--getcnf]\u003cbr/\u003e\n                    [--files_for_run FILES_FOR_RUN]\u003cbr/\u003e\n                    [--nfiles_for_run NFILES_FOR_RUN] [--setExp SETEXP]\u003cbr/\u003e\n    \u003cbr/\u003e\n    optional arguments:\u003cbr/\u003e\n      -h, --help            show this help message and exit\u003cbr/\u003e\n      --run                 get last run\u003cbr/\u003e\n      --exp                 get experiment name\u003cbr/\u003e\n      --live                ongoing?\u003cbr/\u003e\n      --ended               ended\u003cbr/\u003e\n      --hutch HUTCH         get experiment for hutch xxx\u003cbr/\u003e\n      --station STATION     optional station for hutch with two daqs, e.g. cxi and mfx\u003cbr/\u003e\n      --getHutch            get hutch (uppercase)\u003cbr/\u003e\n      --gethutch            get hutch (lowercase)\u003cbr/\u003e\n      --getstation          get hutch station (for multiple daqs)\u003cbr/\u003e\n      --getbase             get base daq name (hutch_station if multiple daqs, otherwise hutch)\u003cbr/\u003e\n      --getinstrument       get instrument (HUTCH_station if multiple daqs, otherwise hutch)\u003cbr/\u003e\n      --getcnf              get cnf file name\u003cbr/\u003e\n      --files_for_run FILES_FOR_RUN\u003cbr/\u003e\n                            get xtc files for run\u003cbr/\u003e\n      --nfiles_for_run NFILES_FOR_RUN\u003cbr/\u003e\n                            get xtc files for run\u003cbr/\u003e\n      --setExp SETEXP       set experiment name\u003cbr/\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003eget_lastRun\u003c/td\u003e\n    \u003ctd\u003e\nusage: get_lastRun options\u003cbr/\u003e\n        \u003cbr/\u003e\n    OPTIONS:\u003cbr/\u003e\n    -l add live status\u003cbr/\u003e\n    -i/H information for hutch (override autodetection)\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003egige\u003c/td\u003e\n    \u003ctd\u003e\n        Deprecated; do not use.\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003egrep_ioc\u003c/td\u003e\n    \u003ctd\u003e\nusage: grep_ioc KEYWORD [hutch]\u003cbr/\u003e\n        hutch can be any of:\u003cbr/\u003e\n    xpp, xcs, cxi, mfx, mec, xrt, aux, det, fee, hpl, icl, las, lfe, tst, thz, all\u003cbr/\u003e\n    If no hutch is specified, all hutches will be searched\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003egrep_pv\u003c/td\u003e\n    \u003ctd\u003e\n     GREP SEARCHES THROUGH ALL IOCs IN /reg/d/iocData/\u003cbr/\u003e\n     FOR PVs THAT MATCH GIVEN KEYWORD/HANDLE.\u003cbr/\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003eiocmanager\u003c/td\u003e\n    \u003ctd\u003e\niocmanager [hutch]\u003cbr/\u003e\n    \u003cbr/\u003e\n    Control status of all IOCs running in a particular hutch in an interactive GUI.\u003cbr/\u003e\n    Current hutch is used if not provided.\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003eioctool\u003c/td\u003e\n    \u003ctd\u003e\nusage: ioctool \u0026lt;ioc\u0026gt;|\u0026lt;pv\u0026gt; [option]\u003cbr/\u003e\n        \u003cbr/\u003e\n    Script that returns information about an ioc given its name or a PV it hosts\u003cbr/\u003e\n        \u003cbr/\u003e\n    default option  is 'name', list of options:\u003cbr/\u003e\n    status : print power status of machine, try to ping interfaces\u003cbr/\u003e\n    name     : returns the name of the ioc\u003cbr/\u003e\n    dir     : returns the path to the directory the ioc is running from\u003cbr/\u003e\n    cddir  :opens the directory the ioc is running from (start with \"source\" before calling script with this option)\u003cbr/\u003e\n    cfg  : returns the the file name of the ioc .cfg (or st.cmd)\u003cbr/\u003e\n    less: opens the ioc .cfg (or st.cmd) in less\u003cbr/\u003e\n    data : returns the path of the appropriate iocData directory if it exists\u003cbr/\u003e\n    telnet : starts a telnet session with the ioc\u003cbr/\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e          \n\n\u003ctr\u003e\n    \u003ctd\u003eipmConfigEpics\u003c/td\u003e\n    \u003ctd\u003e\nusage: ipmConfigEpics [-b boxname] [-H hutch] [-d] [-h] [-l]\u003cbr/\u003e\n          -b: specify boxname to view\u003cbr/\u003e\n      -H: specify a hutch to use, overriding the automated selection\u003cbr/\u003e\n      -d: fix issues with Bld Damage (likely camera IOC w/plugins on same machine)\u003cbr/\u003e\n      -h: display this help text\u003cbr/\u003e\n      -l: list available boxnames\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003emakepeds\u003c/td\u003e\n    \u003ctd\u003e\nusage: makepeds options\u003cbr/\u003e\n        \u003cbr/\u003e\n    Make a pedestal file for offline use\u003cbr/\u003e\n    \u003cbr/\u003e\n    OPTIONS:\u003cbr/\u003e\n    -u user (needs to be able to log into the psananeh/feh)\u003cbr/\u003e\n    -r runnumber for pedestal\u003cbr/\u003e\n    -e EXPNAME in case you do not want pedestals for the ongoing experiment\u003cbr/\u003e\n    -J make pedestals for Jungfrau (default only cspad/EPIX detectors)\u003cbr/\u003e\n    -j make pedestals for Jungfrau - 3 run version(default only cspad/EPIX detectors)\u003cbr/\u003e\n    -O make pedestals for Opals (default only cspad/EPIX detectors)\u003cbr/\u003e\n    -Z make pedestals for Zyla (default only cspad/EPIX detectors)\u003cbr/\u003e\n    -p TEXT: add \u003ctext\u003e to elog post\u003cbr/\u003e\n    -c EVTCODE X use events with eventcode X set\u003cbr/\u003e\n    -n # : if you have created a noise file, then write pixel mask file for pixels with noise above #sigma\u003cbr/\u003e\n    -N # : use this number of events (default 1000)\u003cbr/\u003e\n    -D : dark run for XTCAV\u003cbr/\u003e\n    -L : lasing off run for XTCAV\u003cbr/\u003e\n    -v STR: validity range (if not run#-end, e.g. 123-567 or 123-end)\u003cbr/\u003e\n    -l: do NOT send to batch queue\u003cbr/\u003e\n    -F : use the FFB (default if no experiment is passed)\u003cbr/\u003e\n    -g : run on an FFB batch node\u003cbr/\u003e\n    -f : full epix10k charge injection run\u003cbr/\u003e\n    -C # : if noise filecreated, write pixel mask file for pixels with noise below xxx (currently integer only...)\u003cbr/\u003e\n    -m # : write pixel mask file for pixels with pedestal below xxx (currently integer only...)\u003cbr/\u003e\n    -x # : write pixel mask file for pixels with pedestal above xxx (currently integer only...)\u003cbr/\u003e\n    -i start calibman. -r 0: show all darks, -r n: show runs (n-25) - 25\u003cbr/\u003e\n    -d give path for alternative calibdir\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003emakepeds_psana\u003c/td\u003e\n    \u003ctd\u003e\nusage: makepeds_psana options\u003cbr/\u003e\n        \u003cbr/\u003e\n    Make a pedestal file\u003cbr/\u003e\n    \u003cbr/\u003e\n    OPTIONS:\u003cbr/\u003e\n    -r runnumber for pedestal\u003cbr/\u003e\n    -e EXPNAME in case you do not want pedestals for the ongoing experiment\u003cbr/\u003e\n    -H HUTCH in case you do not pass an experiment name\u003cbr/\u003e\n    -Z pedestal for zyla\u003cbr/\u003e\n    -O make pedestals for Opals\u003cbr/\u003e\n    -J pedestal for jungfrau (needs first of set of 3 runs!)\u003cbr/\u003e\n    -D : dark run for XTCAV\u003cbr/\u003e\n    -L : lasing off run for XTCAV (-b specifies the number of assumed bunches, def 1)\u003cbr/\u003e\n    -l : donot send to batch queue\u003cbr/\u003e\n    -F : use FFB\u003cbr/\u003e\n    -f : full epix10k charge injection run\u003cbr/\u003e\n    -v STR: validity range (if not run#-end, e.g. 123-567 or 123-end)\u003cbr/\u003e\n    -N # : use this number of events (default 1000)\u003cbr/\u003e\n    -n # : if noise filecreated, write pixel mask file for pixels with noise above xxx (currently integer only...)\u003cbr/\u003e\n    -C # : if noise filecreated, write pixel mask file for pixels with noise below xxx (currently integer only...)\u003cbr/\u003e\n    -m # : write pixel mask file for pixels with pedestal below xxx (currently integer only...)\u003cbr/\u003e\n    -x # : write pixel mask file for pixels with pedestal above xxx (currently integer only...)\u003cbr/\u003e\n    -c EVTCODE X use events with eventcode X set\u003cbr/\u003e\n    -i start calibman. -r 0: show all darks, -r n: show runs (n-25) - 25\u003cbr/\u003e\n    -d give path for alternative calibdir\u003cbr/\u003e\n    -t : test, do not deploy.\u003cbr/\u003e\n    -y : when specify cuts for status mask, apply those for epix100.\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003emotor-expert-screen\u003c/td\u003e\n    \u003ctd\u003e\nusage: motor-expert-screen options MOTOR_PV_BASENAME\u003cbr/\u003e\n        \u003cbr/\u003e\n    Start an EDM for the specified motor.\u003cbr/\u003e\n    Attempts to choose the correct type.\u003cbr/\u003e\n    \u003cbr/\u003e\n    OPTIONS:\u003cbr/\u003e\n    -h shows the usage information\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003emotor-typhos\u003c/td\u003e\n    \u003ctd\u003e\nusage: motor-typhos options MOTOR_PV_BASENAME\u003cbr/\u003e\n        \u003cbr/\u003e\n    Start a typhos screen for the specified motor.\u003cbr/\u003e\n    Attempts to choose the correct type.\u003cbr/\u003e\n    \u003cbr/\u003e\n    OPTIONS:\u003cbr/\u003e\n    -h shows the usage information\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003emotorInfo\u003c/td\u003e\n    \u003ctd\u003e\nusage: motorInfo MOTOR_PV (motor_pv_2/autosave/archive/pmgr_diff/pmgr_save) OPT\u003cbr/\u003e\n        \u003cbr/\u003e\n    If given two motors, compare their settings\u003cbr/\u003e\n    If given autosave as second argument, compare the current settings to the autosaved values: differences will be printed\u003cbr/\u003e\n    If given archive, the archive values will be printed for the last week. If only the base PV is given, extra arguments will be needed\u003cbr/\u003e\n    \u003cbr/\u003e\n    OPTIONS:\u003cbr/\u003e\n    -h shows the usage information\u003cbr/\u003e\n    -f fields to use as a comma separated list (default: use all autosave values)\u003cbr/\u003e\n    -s start time for archiver info (YYYY/MM/DD HH:MM:SS)\u003cbr/\u003e\n    -e end time for archiver info (YYYY/MM/DD HH:MM:SS)\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003epcds_conda\u003c/td\u003e\n    \u003ctd\u003e\n Source this to activate a pcds conda environment.\u003cbr/\u003e\n     By default, this activates the latest environment.\u003cbr/\u003e\n     Use export PCDS_CONDA_VER=VERSION before running to pick a different env.\u003cbr/\u003e\n     Pick up EPICS environment variable settings just in case user did not\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003epkg_release\u003c/td\u003e\n    \u003ctd\u003e\n Checks out a package from the pcdshub github at a particular tag.\u003cbr/\u003e\n     Does not update \"latest\" softlinks, these are inconsistent between packages.\u003cbr/\u003e\n     Make sure your tag exists before running.\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003epmgr\u003c/td\u003e\n    \u003ctd\u003e\n pmgr [hutch] [--debug] [--applyenable]\u003cbr/\u003e\n     --debug\t: Displays the debug button, which prints out any edits made\u003cbr/\u003e\n     --applyenable\t: Displays the apply all button, which applies settings to all motors\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003epydev_env\u003c/td\u003e\n    \u003ctd\u003e\n Source this file to activate a development environment based on the latest\u003cbr/\u003e\n     shared environment and on past calls to pydev_register\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003epydev_register\u003c/td\u003e\n    \u003ctd\u003e\n Use this script to register development packages so that they will be\u003cbr/\u003e\n     available when you source pydev_env\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003epyps-deploy\u003c/td\u003e\n    \u003ctd\u003e\nusage: pyps-deploy [-h] -r RELEASE -c CONDA [--repo REPO] [--app-bin APP_BIN] app \u003cbr/\u003e\n    \u003cbr/\u003e\n    Sets up a pyps/apps deployment for a particular github python package. This\u003cbr/\u003e\n    will create an executable under .../pyps/apps/APP-NAME/RELEASE/APP-NAME\u003cbr/\u003e\n    and repoint the symbolic link at .../pyps/apps/APP-NAME/latest to the new\u003cbr/\u003e\n    release folder.\u003cbr/\u003e\n    \u003cbr/\u003e\n    positional arguments:\u003cbr/\u003e\n      app                   Name of the app to deploy\u003cbr/\u003e\n    \u003cbr/\u003e\n    optional arguments:\u003cbr/\u003e\n      -h, --help            show this help message and exit\u003cbr/\u003e\n      -r RELEASE, --release RELEASE\u003cbr/\u003e\n                            App version\u003cbr/\u003e\n      -c CONDA, --conda CONDA\u003cbr/\u003e\n                            Conda environment name\u003cbr/\u003e\n      --repo REPO           Clone this repo and mask the environment package. Use\u003cbr/\u003e\n                            this when you have only a small change that does not\u003cbr/\u003e\n                            need a full environment release.\u003cbr/\u003e\n      --app-bin APP_BIN     Use in conjunction with --repo arg when the launcher\u003cbr/\u003e\n                            is not in the bin directory\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003equestionnaire_tools\u003c/td\u003e\n    \u003ctd\u003e\nusage: questionnaire_tools [-h] [-f FROMEXP] [-t TOEXP] [-r READEXP] [-c]\u003cbr/\u003e\n                               [-d ADD_DEVICE] [-l] [-p PRINT_DEVICE] [--dev]\u003cbr/\u003e\n                               [--experimentList] [--propList]\u003cbr/\u003e\n    \u003cbr/\u003e\n    optional arguments:\u003cbr/\u003e\n      -h, --help            show this help message and exit\u003cbr/\u003e\n      -f FROMEXP, --fromExp FROMEXP\u003cbr/\u003e\n                            experiment to copy from\u003cbr/\u003e\n      -t TOEXP, --toExp TOEXP\u003cbr/\u003e\n                            experiment to copy to\u003cbr/\u003e\n      -r READEXP, --readExp READEXP\u003cbr/\u003e\n                            experiment to read CDS tag from\u003cbr/\u003e\n      -c, --copy_CDS        copy data from CDS tab\u003cbr/\u003e\n      -d ADD_DEVICE, --add_device ADD_DEVICE\u003cbr/\u003e\n                            name of device to be added\u003cbr/\u003e\n      -l, --list_devices    list device to be added\u003cbr/\u003e\n      -p PRINT_DEVICE, --print_device PRINT_DEVICE\u003cbr/\u003e\n                            print data for device\u003cbr/\u003e\n      --dev                 connect to dev database\u003cbr/\u003e\n      --experimentList      list of experiments\u003cbr/\u003e\n      --propList            list of proposals\u003cbr/\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003erestartdaq\u003c/td\u003e\n    \u003ctd\u003e\nusage: restartdaq options\u003cbr/\u003e\n        \u003cbr/\u003e\n    OPTIONS:\u003cbr/\u003e\n    -w sort windows after start\u003cbr/\u003e\n    -p select partition (same as used last)\u003cbr/\u003e\n    -s silent (do not email jana)\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003eserverStat\u003c/td\u003e\n    \u003ctd\u003e\nusage: serverStat servername options\u003cbr/\u003e\n        \u003cbr/\u003e\n    Script to check status of servers \u0026 reboot/power cycle them\u003cbr/\u003e\n    \u003cbr/\u003e\n    SIGNATURE:\u003cbr/\u003e\n    serverStat SERVERNAME [command]\u003cbr/\u003e\n    \u003cbr/\u003e\n    default command is 'status', list of commands:\u003cbr/\u003e\n    status : print power status of machine, try to ping interfaces\u003cbr/\u003e\n    on     : power machine on\u003cbr/\u003e\n    off    : power machine off\u003cbr/\u003e\n    cycle  : power cycle machine, wait a few second in off state\u003cbr/\u003e\n    reset  : reset machine (ideally try that before power cycling)\u003cbr/\u003e\n    console: open the ipmi console where possible\u003cbr/\u003e\n    expert : display info and run checks on server\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003estartami\u003c/td\u003e\n    \u003ctd\u003e\nusage: startami options\u003cbr/\u003e\n        \u003cbr/\u003e\n    we are starting another ami session here\u003cbr/\u003e\n    \u003cbr/\u003e\n    OPTIONS:\u003cbr/\u003e\n    -s: stop the ami client current running on this machine\u003cbr/\u003e\n    -c: config file you'd like to use (i.e. cxi_test.cnf)\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003estopami\u003c/td\u003e\n    \u003ctd\u003e\nKill an AMI process running in the current hutch.\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003estopdaq\u003c/td\u003e\n    \u003ctd\u003e\nStop the daq in the current hutch.\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003etakepeds\u003c/td\u003e \n    \u003ctd\u003e\nusage: takepeds \u003cbr/\u003e\nTakes a run with dark images for use in pedestals, and posts to the elog.\n    \u003c/td\u003e\n\u003c/tr\u003e \n\n\u003ctr\u003e\n    \u003ctd\u003everify-hutch\u003c/td\u003e\n    \u003ctd\u003e\nusage: verify-hutch hutch \u003cbr/\u003e\nVerifies that the passed argument is a known hutch, exit 0 for success and exit 1 for failure.\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003ewheredaq\u003c/td\u003e\n    \u003ctd\u003e\nDiscover what host is running the daq in the current hutch, if any.\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n    \u003ctd\u003ewherepsana\u003c/td\u003e\n    \u003ctd\u003e\nUsage: where_psana [-h] [-c  CONFIG] [-d DETAIL]\u003cbr/\u003e\nChecks where we have shared memory servers for psana running and could run psana jobs.\u003cbr/\u003e\nOptional arguments:\u003cbr/\u003e\n-h      Show usage\u003cbr/\u003e\n-c      Pick a specific DAQ config file rather than automatically selecting current hutch's file\u003cbr/\u003e\n-d      Also show information about dss node mapping\u003cbr/\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\n\n\u003c/table\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklauer%2Fengineering_tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fklauer%2Fengineering_tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklauer%2Fengineering_tools/lists"}