You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

73 lines
1.3 KiB

#!/usr/bin/env bash
function print_help(){
echo -e "new\t\tCreates a new project. Will prompt for a name if no argements are given"
echo -e "\t<project>\tCreates a new project with the name given"
echo -e "\t--dmenu\tPrompt using dmenu"
echo -e "\t--rofi\tPrompt using rofi"
echo -e "\t--read\tPrompt using read"
}
function read_prompt(){
local name
echo -n "Project name: " > /dev/tty
read name < /dev/tty
echo "$name"
}
function dmenu_prompt(){
local name
name=$(echo "" | dmenu -p "Project name: " )
echo "$name"
}
function rofi_prompt(){
local name
name=$(rofi -dmenu -l 0 -p "Project name" )
echo "$name"
}
function create_project(){
local name="$1"
local default_dirs=( bin screenshots Downloads www )
# If name empty, exit
if [ -z "$name" ]; then
exit 1
fi
mkdir -p "$PROJECTS_PATH/$name"
# Make all the directories
for dir in "${default_dirs[@]}"; do
mkdir "$PROJECTS_PATH/$name/$dir"
done
}
if [ -n "$1" ]; then
case "$1" in
-h|--help)
print_help | column -t -s" "
exit 0
;;
--parent-help)
print_help
exit 0
;;
--read)
read_prompt | xargs project-new
exit 0
;;
--dmenu)
dmenu_prompt | xargs project-new
exit 0
;;
--rofi)
rofi_prompt | xargs project-new
exit 0
;;
*)
create_project "$1"
exit 0
;;
esac
else
read_prompt | xargs project-new
fi