#!/bin/bash

function prefix_time(){
	while read LINE; do
		echo "["$(date)"] "$LINE
	done
}

function one_token_per_line(){
	for L in $1; do
		echo $L
	done
}

function choose_one(){
	if [ $# -eq 0 ]; then
		echo missing argument 1>&2
		exit 1
	fi
	
	if [ "$1" = "-" ]; then
		touch internal_pipe
		CNT=0
		tee internal_pipe | while read LINE; do
			CNT=$(($CNT+1))
			echo " "$CNT" > "$LINE
		done
		read -p "enter a number: " -u 1 NUM
		CNT=$(cat internal_pipe | wc -l)
		if [ "" = $NUM ]; then echo empty input; exit 1; fi
		if [ 0 -ge $NUM ]; then echo too small; exit 1; fi
		if [ $CNT -lt $NUM ]; then echo too large; exit 1; fi
		cat internal_pipe | head -n +$NUM | tail -n +$NUM
		rm internal_pipe
	else
		cat $1 | choose_one -
	fi
}

function block_devices(){
	#lsblk -fPpo NAME,FSTYPE,LABEL,UUID,FSAVAIL,MOUNTPOINT
	lsblk -frpno NAME
}

function foo(){

		while read LINE; do
		(
			export $LINE
			echo "> "$NAME
		)
		done
}