diff options
| author | Joe Richey joerichey@google.com <joerichey@google.com> | 2017-10-06 14:25:07 -0700 |
|---|---|---|
| committer | Joseph Richey <joerichey94@gmail.com> | 2017-10-19 02:22:23 -0700 |
| commit | b96f72d63641c8dcfe5e142ecd5d6c9f9a7d5778 (patch) | |
| tree | bc15a81c4af5cf75dbf3aa6ed7c9d21418b5226f /ext4/ext4.go | |
| parent | 7d16a9fb37b8a6204d76f187444330b8faae4e4e (diff) | |
ext4: start refactor
Diffstat (limited to 'ext4/ext4.go')
| -rw-r--r-- | ext4/ext4.go | 62 |
1 files changed, 40 insertions, 22 deletions
diff --git a/ext4/ext4.go b/ext4/ext4.go index 401d208..7419929 100644 --- a/ext4/ext4.go +++ b/ext4/ext4.go @@ -1,3 +1,22 @@ +/* + * ext4.go - Handles command line processing for fscrypt-ext4. + * + * Copyright 2017 Google Inc. + * Author: Joe Richey (joerichey@google.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + package main import ( @@ -34,7 +53,7 @@ Arguments: ` ) -func printUsageAndExit(err error) { +func printAndExit(err error, printUsage bool) { var w io.Writer var rc int if err == nil { @@ -46,45 +65,44 @@ func printUsageAndExit(err error) { rc = 1 fmt.Fprintf(w, "%s: %v\n", cmdName, err) } - - fmt.Fprintf(w, usageFmt, cmdName) - fmt.Fprintln(w, "\nOptions:") - set.VisitAll(func(f *flag.Flag) { - fmt.Fprintf(w, "\t--%s\n\t\t%s\n", f.Name, f.Usage) - }) - fmt.Fprintf(w, "\nSee the %s man page for more info.\n", manPage) + if printUsage { + fmt.Fprintf(w, usageFmt, cmdName) + fmt.Fprintln(w, "\nOptions:") + set.VisitAll(func(f *flag.Flag) { + fmt.Fprintf(w, "\t--%s\n\t\t%s\n", f.Name, f.Usage) + }) + fmt.Fprintf(w, "\nSee the %s man page for more info.\n", manPage) + } os.Exit(rc) } func main() { set.SetOutput(ioutil.Discard) if err := set.Parse(os.Args[1:]); err != nil { - printUsageAndExit(err) + printAndExit(err, true) } if *helpFlag { - printUsageAndExit(nil) + printAndExit(nil, true) } if *versionFlag { fmt.Println(version) return } if set.NArg() != 2 { - printUsageAndExit(fmt.Errorf("expected 2 arguments, got %d", set.NArg())) + printAndExit(fmt.Errorf("expected 2 arguments (got %d)", set.NArg()), true) + } + + _, err := NewExt4Filesystem(set.Arg(1)) + if err != nil { + printAndExit(err, false) } - command, mountpoint := set.Arg(0), set.Arg(1) - switch command { + switch command := set.Arg(0); command { case "enable": - fmt.Println("Enabling encryption!!") + fmt.Println("Enabling encryption not implemented") case "disable": - fmt.Println("Disabling encryption!!") + fmt.Println("Disabling encryption not implemented") default: - printUsageAndExit(fmt.Errorf("invalid command %q", command)) - } - - if isExt4EncryptionEnabled(mountpoint) { - fmt.Printf("%q has encryption\n", mountpoint) - } else { - fmt.Printf("%q doesn't have encryption\n", mountpoint) + printAndExit(fmt.Errorf("invalid command %q", command), true) } } |