This commit is contained in:
Ian Adam Naval 2014-09-16 20:52:57 -04:00
parent b226effff0
commit 1d57896123
6 changed files with 167 additions and 167 deletions

View File

@ -13,6 +13,7 @@ type JshOutput struct {
// Size prefixes as integers, using binary representation // Size prefixes as integers, using binary representation
type Unit int type Unit int
const ( const (
B Unit = 2 ^ 0 B Unit = 2 ^ 0
KB Unit = 2 ^ 10 KB Unit = 2 ^ 10

View File

@ -6,8 +6,8 @@ import (
"flag" "flag"
"fmt" "fmt"
"jsh" "jsh"
"regexp"
"os" "os"
"regexp"
"strconv" "strconv"
) )

View File

@ -1,30 +1,29 @@
package main package main
import ( import (
"io/ioutil"
"fmt"
"flag" "flag"
"fmt"
"io/ioutil"
"log" "log"
"syscall"
"strconv" "strconv"
"syscall"
) )
func get_fileinfo(f string, size bool, mode bool, inode bool) string {
func get_fileinfo(f string, size bool, mode bool, inode bool) string{
var stat syscall.Stat_t var stat syscall.Stat_t
var ret string var ret string
ret = "{\"name\":\"" + f + "\"" ret = "{\"name\":\"" + f + "\""
if err := syscall.Stat(f, &stat); err != nil { if err := syscall.Stat(f, &stat); err != nil {
log.Fatal(err) log.Fatal(err)
} }
if(size){ if size {
ret = ret + ", \"size\":" + strconv.FormatInt(stat.Size,10) ret = ret + ", \"size\":" + strconv.FormatInt(stat.Size, 10)
} }
if(mode){ if mode {
ret = ret + ", \"mode\":" + strconv.Itoa(int(stat.Mode)) ret = ret + ", \"mode\":" + strconv.Itoa(int(stat.Mode))
} }
if(inode){ if inode {
ret = ret + ", \"inode\":" + strconv.FormatUint(stat.Ino,10) ret = ret + ", \"inode\":" + strconv.FormatUint(stat.Ino, 10)
} }
ret = ret + "}" ret = ret + "}"
return ret return ret
@ -46,27 +45,27 @@ func main() {
// end ls flag // end ls flag
flag.Parse() flag.Parse()
root := "."//flag.Arg(0) root := "." //flag.Arg(0)
dir,_ := ioutil.ReadDir(root) dir, _ := ioutil.ReadDir(root)
fmt.Printf("[\n") fmt.Printf("[\n")
if(!a_flag){ if !a_flag {
for _,entry := range dir{ for _, entry := range dir {
if(entry.Name()[0]!='.'){ if entry.Name()[0] != '.' {
if(!first){ if !first {
fmt.Printf(",") fmt.Printf(",")
}else{ } else {
first = false first = false
} }
fmt.Printf("%s\n", get_fileinfo(entry.Name(), size_flag, mode_flag, inode_flag)) fmt.Printf("%s\n", get_fileinfo(entry.Name(), size_flag, mode_flag, inode_flag))
} }
} }
}else{ } else {
for _,entry := range dir{ for _, entry := range dir {
if(!first){ if !first {
fmt.Printf(",") fmt.Printf(",")
}else{ } else {
first = false first = false
} }
fmt.Printf("%s\n", get_fileinfo(entry.Name(), size_flag, mode_flag, inode_flag)) fmt.Printf("%s\n", get_fileinfo(entry.Name(), size_flag, mode_flag, inode_flag))

View File

@ -2,9 +2,9 @@ package jsh
import ( import (
"math" "math"
"unicode"
"os" "os"
"os/exec" "os/exec"
"unicode"
) )
// FieldsN slices s into substrings after each instance of a whitespace // FieldsN slices s into substrings after each instance of a whitespace