{"id":24404908,"url":"https://github.com/xljones/xjtools","last_synced_at":"2025-06-17T04:34:28.481Z","repository":{"id":44591799,"uuid":"261789539","full_name":"xljones/xjtools","owner":"xljones","description":"Framework for quickly creating, editing, and using small Python tools for every-day use.","archived":false,"fork":false,"pushed_at":"2023-12-05T08:59:42.000Z","size":72,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-13T07:44:14.490Z","etag":null,"topics":["framework","python","python3","quick","tools"],"latest_commit_sha":null,"homepage":"","language":"Python","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/xljones.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-05-06T14:47:13.000Z","updated_at":"2023-12-04T19:50:48.000Z","dependencies_parsed_at":"2025-03-13T07:52:44.969Z","dependency_job_id":null,"html_url":"https://github.com/xljones/xjtools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xljones/xjtools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xljones%2Fxjtools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xljones%2Fxjtools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xljones%2Fxjtools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xljones%2Fxjtools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xljones","download_url":"https://codeload.github.com/xljones/xjtools/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xljones%2Fxjtools/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260294085,"owners_count":22987596,"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","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":["framework","python","python3","quick","tools"],"created_at":"2025-01-20T04:13:47.075Z","updated_at":"2025-06-17T04:34:28.462Z","avatar_url":"https://github.com/xljones.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xjtools\nCollection of small tools and scripts used daily, along with a small framework for quickly creating new tools, and editing current ones.\n\n## Installation\n1. Clone this repository with `$ git clone https://github.com/xander-jones/xjtools.git`\n1. Add the following function to `~/.zshrc`, or `~/.bashrc` depending on zsh or bash terminal use\n1. Modify the `PYTHON_INTERPRETER` value if you'd like to use a different Python version.\n1. Modify the `INSTALL_DIR` to the directory where the repository has been cloned to.\n1. Refresh your zsh/bash environment with `$ source ~/.zshrc` or `$ source ~/.bashrc`\n\n```bash\n# xjtools\ntools() {\n  # xjtools - Configuration start\n  PYTHON_INTERPRETER=venv/bin/python\n  INSTALL_DIR=~/Git/xljones/xjtools\n  APP_DIR=app\n  TOOLS_DIR=tools\n  # xjtools - Configuration end\n\n  # If no arguments given, jump straight to the tools folder\n  if [ -z \"$1\" ]; then\n    cd $INSTALL_DIR\n\n  # if arguments are given, check if it's a lib command\n  else\n    if [[ \"$1\" == \"help\" ]] then\n      (cd $INSTALL_DIR \u0026\u0026 $PYTHON_INTERPRETER -m $APP_DIR -h)\n    elif [[ \"$1\" == \"new\"       ||\n            \"$1\" == \"list\"      ||\n            \"$1\" == \"edit\"      ||\n            \"$1\" == \"delete\"    ||\n            \"$1\" == \"rename\"    ||\n            \"$1\" == \"duplicate\" ]] then\n      if test -d \"$INSTALL_DIR/$APP_DIR\"; then\n        (cd $INSTALL_DIR \u0026\u0026 $PYTHON_INTERPRETER -m $APP_DIR ${@:1})\n      else\n        echo \"[xjtools] Error: module not found at $INSTALL_DIR/$APP_DIR\"\n      fi\n    else\n      FILE=$TOOLS_DIR/$1.py\n      if test -f \"$FILE\"; then\n        (cd $INSTALL_DIR \u0026\u0026 $PYTHON_INTERPRETER $FILE ${@:2})\n      else\n        echo \"[xjtools] Error: tool '$1' not found, try \\`tools list\\` to find the tool.\"\n      fi\n    fi\n  fi\n}\n\n```\n\n## Usage\nThe following command can be run from anywhere on your computer if you have installed the alias in the installation instructions.\n### List the tools\n```bash\n$ tools list\n```\nproduces the following output\n```\n$ tools list\n[xjtools] Listing tools found in /Users/xanderjones/GitHub/my-tools/tools\n+---+-------------+---------+-----------------------------------------------------+\n| # | Tool        | Version | Description                                         |\n+---+-------------+---------+-----------------------------------------------------+\n| 1 | upper       | 1.0.0   | Convert any following arguments to upper case       |\n| 2 | minlink     | 1.0.1   | Convert a Bugsnag long link into useful information |\n+---+-------------+---------+-----------------------------------------------------+\n```\n### Call a tool for use\n```bash\n$ tools TOOL_NAME [arguments] arguments\n```\n### Create a new tool\n```bash\n$ tools new TOOL_NAME\n```\n### Edit a tool\nBy default this opens in VSCode. You can modify the value `_EDIT_TOOL` in `./lib/xjconst.py` if you'd like to use another editor.\n```bash\ntools edit TOOL_NAME\n```\n### Rename a tool\nRenaming a tool will also update the internals to reflect the changes, and up the change date to today\n```bash\ntools rename TOOL_NAME NEW_NAME\n```\n### Duplicate a tool\nDuplicating a tool is similar to renaming, but won't remove the old script you've copied from.\n```bash\ntools duplicate TOOL_NAME DUPLICATE_NAME\n```\n### Delete a tool\nThis moves the tool into a sub hidden folder called `.deleted`, and appends an index value to the file if there are more than 1 of the same name.\n```bash\ntools delete TOOL_NAME\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxljones%2Fxjtools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxljones%2Fxjtools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxljones%2Fxjtools/lists"}