aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJwanMan <public@mn.900k.es>2017-02-26 18:02:23 +0000
committerGitHub <noreply@github.com>2017-02-26 18:02:23 +0000
commitf8ad695a5db346847dd5ae961311125f72901ec2 (patch)
tree0f041d996002f6c026858d8f95f31cdae70192a2
parentd9f29f10b03386c93f353dc757b9cf63e08c42e3 (diff)
Rename use.sh to just use
-rw-r--r--use.sh184
1 files changed, 0 insertions, 184 deletions
diff --git a/use.sh b/use.sh
deleted file mode 100644
index d0f962c..0000000
--- a/use.sh
+++ /dev/null
@@ -1,184 +0,0 @@
-#!/bin/bash
-# This file is public domain.
-#
-# This is an interactive command line utility to handle scripts and
-# use cases (an use case is a scripts that opens everything needed for
-# the user to perform a task).
-#
-# In order to allow any programming language, your script must have
-# a sha-bang (#!) line. If you want it to start a GUI, you can use
-# nohup in the command line. Using nohup in the sha-bang has the
-# potential unwanted effects of exploding (if you forget to put the
-# name of the shell after the word 'nohup') or scattering nohup.out
-# files all over the place (if you start it from different places),
-# so it's discouraged.
-#
-# The environment variables affecting this program are:
-# $USE_DIR: The directory to store (and read) the scripts. By
-# default, it is '~/.userc'.
-# $EDITOR: The text editor to edit the scripts. By default, it is
-# 'nano'.
-# $SHOW: The default command to show the scripts (not editing). By
-# default, it is 'less' (you can use cat, nano...).
-
-
-# Normalize environment variables.
-USE_DIR=${USE_DIR:-~/.userc}
-[ "$USE_DIR" != / ] && USE_DIR=${USE_DIR%/}
-
-EDITOR=${EDITOR:-nano}
-SHOW=${SHOW:-less}
-
-# If if doesn't exist, create it if possible.
-if [ ! -d "$USE_DIR" ]; then
- if [ -e "$USE_DIR" ]; then
- echo "$0: $USE_DIR: Not a directory."
- exit
- elif mkdir -p "$USE_DIR"; then
- echo "$0: Created directory '$USE_DIR'."
- else
- exit
- fi
-fi
-
-# Check read/list permissions.
-if [ ! -r "$USE_DIR" -o ! -x "$USE_DIR" ]; then
- echo "$0: $USE_DIR: Unable to access directory contents."
- exit
-fi
-
-cd "$USE_DIR"
-
-# Functions
-user_wait() {
- echo -n "Press any key to continue..."
- read
-}
-
-error_ro() {
- echo "$0: $USE_DIR: Read-only directory."
- user_wait
-}
-
-read_num () {
- echo -n "Script number: "
- read num
- while [ -z "${use[num]}" ]; do
- [ -z "$num" ] && return 0
- echo "$0: Invalid number."
- echo -n "Script number: "
- read num
- done
- return 0
-}
-
-new_script () {
- if $writable; then
- echo -n "Name: "
- read name
- [ -z "$name" ] && return 0
- touch "$name"
- chmod +x "$name"
- $EDITOR "$name"
- else
- error_ro
- fi
-}
-
-delete_script () {
- if $writeable; then
- read_num
- rm "${use[num]}"
- else
- error_ro
- fi
-}
-
-edit_script () {
- read_num
- while [ ! -w "${use[num]}" ]; do
- echo "$0: ${use[num]}: Read-only file."
- read_num
- done
- $EDITOR "${use[num]}"
-}
-
-
-rename_script () {
- if $writeable; then
- read_num
- echo -n "New name: "
- read name
- [ -z "$name" ] && return 0
- mv "${use[num]}" "$name"
- else
- error_ro
- fi
-}
-
-show_script () {
- read_num
- $SHOW "${use[num]}"
-}
-
-
-# Menu
-menu () {
- clear
-
- # Check write permission.
- if [ -w "$USE_DIR" ]; then
- writeable=true
- else
- echo "NOTE: Running in read-only mode."
- writeable=false
- fi
-
- # Get directory contents
- typeset -i cnt=0
- use[0]=""
- for f in *; do
- if [ -f "$f" -a -x "$f" ]; then
- cnt=cnt+1
- use[cnt]=$f
- fi
- done
-
- # Start listing options
- if $writeable; then
- echo " n) New script"
- echo " d) Delete script"
- echo " r) Rename script"
- fi
-
- echo " e) Edit script"
- echo " s) Show script"
-
- for i in `seq $cnt`; do
- echo -n " $i) ${use[i]}"
- [ ! -w "${use[i]}" ] && echo -n " (read only)"
- echo
- done
-
- # Ask
- echo
- echo -n "Choose an option: "
- read opt
-
- case $opt in
- n|N) new_script ;;
- d|D) delete_script ;;
- e|E) edit_script ;;
- r|R) rename_script ;;
- s|S) show_script ;;
- *)
- if [ -n "${use[opt]}" ]; then
- "$USE_DIR/${use[opt]}"
- exit
- fi
- esac
-}
-
-while true; do
- menu
-done