1
0
Fork 0
mirror of https://github.com/zdharma-continuum/zinit-annex-unscope.git synced 2024-11-21 13:48:01 +01:00
zinit-annex-unscope/ghquery
2021-11-12 12:15:22 +01:00

56 lines
1.8 KiB
Bash
Executable file

#!/usr/bin/env zsh
# -*- mode: sh; sh-indentation: 4; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# Copyright (c) 2020 Sebastian Gniazdowski
# An example of type-agnostic script/function, i.e.: the file can be run as a +x
# script or as an autoload function.
# Set the base and typically useful options
emulate -LR zsh
setopt extendedglob typesetsilent warncreateglobal noshortloops rcquotes
# Run as script? ZSH_SCRIPT is a Zsh 5.3 addition
if [[ $0 != */ghquery || -n $ZSH_SCRIPT ]] {
# Handle $0 according to the Zsh Plugin Standard:
# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html#zero-handling
0=${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}
0=${${(M)0##/*}:-$PWD/$0}
# Such global variable is expected to be typeset'd -g in the plugin.zsh
# file. Here it's restored in case of the function being run as a script.
typeset -gA Plugins
Plugins[UNSCOPE_DIR]=${0:h}
# In case of the script using other scripts from the plugin in the future
path+=( $Plugins[UNSCOPE_DIR] )
}
typeset -g name=$1
typeset -ga reply full_names
typeset -g URL="https://api.github.com/search/repositories?q=$name+in:name+fork:false"
#typeset -g CACHE_DIR="${XDG_CACHE_HOME:-$HOME/.cache}/zinit-annex-unscope"
#command mkdir -p "$CACHE_DIR"
download() {
local url=$URL"+$1&sort=stars&order=desc"
reply=( "${(@f)"$(curl --silent -i "$url")"}" )
}
integer forks
for forks ( 10 2 0 ) {
download "forks:>=$forks"
full_names=( ${(M)reply[@]:#[[:space:]]#\"full_name\":[[:space:]]#*,} )
full_names=( "${${(M)full_names[@]//(#b)[[:space:]]#\"full_name\":[[:space:]]#\"(*)\",/${match[1]}}[@]}" )
full_names=( ${(M)full_names[@]:#*/$name} )
if (( ${#full_names} )) {
print -r -- $forks: $full_names[1]
exit 0
}
}
exit 1
# vim:ft=zsh:tw=80:sw=4:sts=4:et:foldmarker=[[[,]]]