X-Git-Url: https://src.twobees.de/?a=blobdiff_plain;ds=sidebyside;f=stow%2Foh-my-zsh%2F.oh-my-zsh%2Fplugins%2Fjsontools%2Fjsontools.plugin.zsh;fp=stow%2Foh-my-zsh%2F.oh-my-zsh%2Fplugins%2Fjsontools%2Fjsontools.plugin.zsh;h=0000000000000000000000000000000000000000;hb=1a8e170bbe5c6641a26ab1ce2e6ce6c5c1faa4cd;hp=49828d32d2ecc9394eedf4f4150a287d6280678d;hpb=475ba35502579302593f4735c853c49ef1845dcb;p=dotfiles.git diff --git a/stow/oh-my-zsh/.oh-my-zsh/plugins/jsontools/jsontools.plugin.zsh b/stow/oh-my-zsh/.oh-my-zsh/plugins/jsontools/jsontools.plugin.zsh deleted file mode 100644 index 49828d3..0000000 --- a/stow/oh-my-zsh/.oh-my-zsh/plugins/jsontools/jsontools.plugin.zsh +++ /dev/null @@ -1,113 +0,0 @@ -# JSON Tools -# Adds command line aliases useful for dealing with JSON - -# Check that user-defined method is installed -if [[ -n "$JSONTOOLS_METHOD" ]]; then - (( $+commands[$JSONTOOLS_METHOD] )) || unset JSONTOOLS_METHOD -fi - -# If method undefined, find the first one that is installed -if [[ -z "$JSONTOOLS_METHOD" ]]; then - for JSONTOOLS_METHOD in node python3 ruby; do - # If method found, break out of loop - (( $+commands[$JSONTOOLS_METHOD] )) && break - # Otherwise unset the variable - unset JSONTOOLS_METHOD - done - - # If no methods were found, exit the plugin - [[ -n "$JSONTOOLS_METHOD" ]] || return 1 -fi - -# Define json tools for each method -case "$JSONTOOLS_METHOD" in - node) - # node doesn't make it easy to deal with stdin, so we pass it as an argument with xargs -0 - function pp_json() { - xargs -0 node -e 'console.log(JSON.stringify(JSON.parse(process.argv[1]), null, 4));' - } - function is_json() { - xargs -0 node -e ' - try { - json = JSON.parse(process.argv[1]); - console.log("true"); - process.exit(0); - } catch (e) { - console.log("false"); - process.exit(1); - } - ' - } - function urlencode_json() { - xargs -0 node -e "console.log(encodeURIComponent(process.argv[1]))" - } - function urldecode_json() { - xargs -0 node -e "console.log(decodeURIComponent(process.argv[1]))" - } - ;; - python3) - function pp_json() { - python3 -c 'import sys; del sys.path[0]; import runpy; runpy._run_module_as_main("json.tool")' - } - function is_json() { - python3 -c ' -import sys; del sys.path[0]; -import json -try: - json.loads(sys.stdin.read()) - print("true"); sys.exit(0) -except ValueError: - print("false"); sys.exit(1) - ' - } - function urlencode_json() { - python3 -c ' -import sys; del sys.path[0]; -from urllib.parse import quote_plus -print(quote_plus(sys.stdin.read())) - ' - } - function urldecode_json() { - python3 -c ' -import sys; del sys.path[0]; -from urllib.parse import unquote_plus -print(unquote_plus(sys.stdin.read())) - ' - } - ;; - ruby) - function pp_json() { - ruby -e ' - require "json" - require "yaml" - puts JSON.parse(STDIN.read).to_yaml - ' - } - function is_json() { - ruby -e ' - require "json" - begin - puts !!JSON.parse(STDIN.read); exit(0) - rescue JSON::ParserError - puts false; exit(1) - end - ' - } - function urlencode_json() { - ruby -e 'require "cgi"; puts CGI.escape(STDIN.read)' - } - function urldecode_json() { - ruby -e 'require "cgi"; puts CGI.unescape(STDIN.read)' - } - ;; -esac -unset JSONTOOLS_METHOD - -## Add NDJSON support - -function {pp,is,urlencode,urldecode}_ndjson() { - local json jsonfunc="${0//ndjson/json}" - while read -r json; do - $jsonfunc <<< "$json" - done -}