Lots: Add README, purge old shit scripts
This commit is contained in:
		
							
								
								
									
										41
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | ||||
| #.bin | ||||
|  | ||||
| A submodule for my scripts | ||||
|  | ||||
| ## Useful Scripts | ||||
|  | ||||
| binary | description  | ||||
| --- | --- | ||||
| `colortest` | Ricey color tester | ||||
| `fetch` | Neofetch and scrot wrapper | ||||
| `i3-settree` | Save and restore i3 trees on the fly | ||||
| `rmbspam` | Spam the right mouse button | ||||
| `te` | Versatile templating script | ||||
| `tmp` | Spawn a temporary directory and clean it up at the end of the shell | ||||
| `xrdbupdate` | Load in a bunch of xrdb files from ~/.config/xrdb instead of just ~/.Xresources | ||||
|  | ||||
| ## One-Off Scripts | ||||
|  | ||||
| binary | description  | ||||
| --- | --- | ||||
| `cconvert` | Converts a hex color into RGB integers | ||||
| `domainfind` | Given a list of TLDs as arguments, find dictionary words that contain those TLDs | ||||
| `test-notifications` | Print three test notifications | ||||
|  | ||||
| ## Specialized Scripts | ||||
|  | ||||
| Scripts that are really only useful to me. | ||||
|  | ||||
| binary | description  | ||||
| --- | --- | ||||
| `g910-lights` | Ricey G910 LED startup script | ||||
|  | ||||
| ## Bullshit Scripts | ||||
|  | ||||
| binary | description  | ||||
| --- | --- | ||||
| `cowsayeternal` | Build up a ton of nested `cowsay` output | ||||
| `mclevel` | Use xdotool to rig an Ars Magica 2 journal to give you a certain number of levels except it doesn't work | ||||
| `tubetop` | Embed a video into the desktop using xwinwrap | ||||
| `tubetop2` | The cooler tubetop | ||||
| `xephwrap` | Use xephyr to wrap a new X session | ||||
							
								
								
									
										39
									
								
								mklatex
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								mklatex
									
									
									
									
									
								
							| @@ -1,39 +0,0 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| # Copyright (c) 2017 rehashedsalt/vintagesalt | ||||
| #  | ||||
| # Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| # of this software and associated documentation files (the "Software"), to deal | ||||
| # in the Software without restriction, including without limitation the rights | ||||
| # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| # copies of the Software, and to permit persons to whom the Software is | ||||
| # furnished to do so, subject to the following conditions: | ||||
| #  | ||||
| # The above copyright notice and this permission notice shall be included in all | ||||
| # copies or substantial portions of the Software. | ||||
| #  | ||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| # SOFTWARE. | ||||
|  | ||||
| if [ -z "$@" ]; then | ||||
| 	printf "mklatex: no files specified\n" | ||||
| 	exit 1 | ||||
| fi | ||||
| for sourcefile in "$@"; do | ||||
| 	if [ ! -f "$sourcefile" ]; then | ||||
| 		printf "mklatex: file not found: $sourcefile\n" | ||||
| 	else | ||||
| 		pdflatex $sourcefile | ||||
| 	fi | ||||
| done | ||||
| if [ "$(which llpp)" ]; then | ||||
| 	killall -SIGHUP llpp | ||||
| fi | ||||
| if [ "$(which mupdf)" ]; then | ||||
| 	killall -SIGHUP mupdf | ||||
| fi | ||||
							
								
								
									
										90
									
								
								ssht
									
									
									
									
									
								
							
							
						
						
									
										90
									
								
								ssht
									
									
									
									
									
								
							| @@ -1,90 +0,0 @@ | ||||
| #! /usr/bin/env bash | ||||
| # | ||||
| # ssht | ||||
| # Copyright (C) 2018 salt <salt@lap-th-e560-0> | ||||
| # | ||||
| # Distributed under terms of the MIT license. | ||||
| # | ||||
|  | ||||
| name="$(basename $0 .sh)" | ||||
|  | ||||
| # $1:	Message | ||||
| function log() { | ||||
| 	[ -z ${1+x} ] && return 1 | ||||
| 	printf "\e[94m$name\e[0m: $*\n" | ||||
| } | ||||
|  | ||||
| # $1:	Binary in $PATH | ||||
| function check_program_exists() { | ||||
| 	if ! which $1 > /dev/null 2>&1; then | ||||
| 		return 1 | ||||
| 	fi | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| function get_tor_port() { | ||||
| 	for port in 9050 9051 9150 9151; do | ||||
| 		if netstat -ntl | grep 127.0.0.1:"$port" > /dev/null 2>&1; then | ||||
| 			export return="$port" | ||||
| 			return 0 | ||||
| 		fi | ||||
| 	done | ||||
| 	return 1 | ||||
| } | ||||
|  | ||||
| # $1:	Tor Port | ||||
| # $2:	Host | ||||
| # $*:	Command | ||||
| function ssh_through_tor() { | ||||
| 	[ -z ${3+x} ] && return 1 | ||||
| 	ssh -o ProxyCommand="nc -x 127.0.0.1:$1 \%h \%p" $2 ${*:3} | ||||
| } | ||||
|  | ||||
| # $1:	Tor Port | ||||
| # $2:	Host | ||||
| function get_ssh_ip() { | ||||
| 	# Yes, this is bad and you could totally run it through an SSH tunnel | ||||
| 	# to avoid the curl requirement on the remote host | ||||
| 	# Yes, that would avoid an extraneous connection | ||||
| 	# TODO: That, also add curl to the list of critical requirements | ||||
| 	log "Checking if host $2 has curl" | ||||
| 	if ssh_through_tor "$1" "$2" which curl > /dev/null 2>&1; then | ||||
| 		log "Finding out host's IP through curl" | ||||
| 		export return="$(ssh_through_tor $1 $2 curl -s http://whatismyip.akamai.com)" | ||||
| 		return 0 | ||||
| 	fi | ||||
| 	# TODO: Add more identification methods | ||||
| 	return 1 | ||||
| } | ||||
|  | ||||
| # $1:	Host | ||||
| # $*:	Arguments to ssh | ||||
| function main() { | ||||
| 	if ! [[ "$1" == *.onion ]]; then | ||||
| 		log "First argument must be a .onion address" | ||||
| 		exit 1 | ||||
| 	fi | ||||
| 	for dep in ssh tor netstat nc; do | ||||
| 		if ! check_program_exists "$dep"; then | ||||
| 			log "Could not find critical dependency \"$dep\"" | ||||
| 			exit 50 | ||||
| 		fi | ||||
| 	done | ||||
| 	if ! get_tor_port; then | ||||
| 		log "Tor is not running" | ||||
| 		exit 51 | ||||
| 	fi | ||||
| 	torport="$return" | ||||
| 	log "Found Tor listening on local port $torport" | ||||
| 	if ! get_ssh_ip $torport $1; then | ||||
| 		log "Failed to determine target's public IP" | ||||
| 		exit 52 | ||||
| 	fi | ||||
| 	ssh_ip="$return" | ||||
| 	log "Found public IP: $ssh_ip" | ||||
| 	unset return torport | ||||
| 	exec ssh $ssh_ip ${*:2} | ||||
| } | ||||
|  | ||||
| main "$@" | ||||
|  | ||||
		Reference in New Issue
	
	Block a user