Browse Source

Added support for python scripts

Samuel W. Flint 7 years ago
parent
commit
d4b35ae89d
1 changed files with 43 additions and 9 deletions
  1. 43 9
      ledgerutil

+ 43 - 9
ledgerutil

@@ -1,12 +1,12 @@
 #!/bin/zsh -f
 
 if [[ $# -eq 0 ]] ; then
-    echo "ledgerutil [ name | list | new name | edit name ]"
+    echo "ledgerutil [ name | list | new name [ perl | shell | python ] | edit name ]"
     exit
 fi
 
 function list-utilities () {
-    for utility in ~/.ledger/utilities/*.(sh|pl) ;
+    for utility in ~/.ledger/utilities/*.(sh|pl|py) ;
     do
         case $utility in
             *.sh)
@@ -14,6 +14,9 @@ function list-utilities () {
                 ;;
             *.pl)
                 echo " - $(basename -- ${utility} .pl)"
+                ;;
+            *.py)
+                echo " - $(basename -- ${utility} .py)"
         esac
     done
 }
@@ -21,19 +24,50 @@ function list-utilities () {
 function new-utility () {
     name=$1
     shift
-    cat <<EOF >~/.ledger/utilities/${name}.sh
+    type=$1
+    case $type in
+        perl)
+            cat <<EOF > ~/.ledger/utilities/${name}.pl
+#!/bin/perl
+
+use strict;
+use warnings;
+
+# Ledger Utility ${name}
+
+EOF
+            ;;
+        python)
+            cat <<EOF > ~/.ledger/utilities/${name}.py
+#!/bin/python
+
+import ledger
+
+# Ledger Utility ${name}
+
+EOF
+            ;;
+        *)
+            cat <<EOF > ~/.ledger/utilities/${name}.sh
 #!/bin/sh
 
 # Ledger Utility ${name}
 
 EOF
+    esac
     edit-utility ${name}
 }
 
 function edit-utility () {
     name=$1
     shift
-    emacsclient --alternate-editor="" -n ~/.ledger/utilities/${name}.sh
+    if [[ -e ~/.ledger/utilities/${name}.sh ]] ; then
+        emacsclient --alternate-editor="" -n ~/.ledger/utilities/${name}.sh
+    elif [[ -e ~/.ledger/utilities/${name}.pl ]] ; then
+        emacsclient --alternate-editor="" -n ~/.ledger/utilities/${name}.pl
+    elif [[ -e ~/.ledger/utilities/${name}.py ]] ; then
+        emacsclient --alternate-editor="" -n ~/.ledger/utilities/${name}.py
+    fi
 }
 
 function run-utility () {
@@ -42,12 +76,12 @@ function run-utility () {
 
     if [[ -e ~/.ledger/utilities/${name}.sh ]] ; then
         ~/.ledger/utilities/${name}.sh $*
+    elif [[ -e ~/.ledger/utilities/${name}.pl ]] ; then
+        ~/.ledger/utilities/${name}.pl $*
+    elif [[ -e ~/.ledger/utilities/${name}.py ]] ; then
+        ~/.ledger/utilities/${name}.py $*
     else
-        if [[ -e ~/.ledger/utilities/${name}.pl ]] ; then
-            ~/.ledger/utilities/${name}.pl $*
-        else
-            echo Utility ${name} not defined.
-        fi
+        echo Utility ${name} not defined.
     fi
 }