|
|
- package main
-
- import (
- "flag"
- "fmt"
- "os"
-
- "PackageManager/Client/Database"
- "PackageManager/Client/Filesystem"
- "PackageManager/Client/Package"
- "PackageManager/Color"
- "PackageManager/Helper"
- "PackageManager/Variables"
- )
-
- func init() {
- var (
- e error
- )
- _, e = os.Stat(Variables.ConfigDir)
- if os.IsNotExist(e) {
- os.MkdirAll(Variables.ConfigDir, 0644)
- } else if e != nil {
- panic(e)
- }
- }
-
- func HelpMsg() {
- var helpMsg string
- helpMsg = `Usage of %s:
-
- General:
- -V | -verbose
- Verbose output
-
- Filesystem diff:
- -Af | -add-files
- Add files
-
- -Cf | -commit
- Add files
-
- -Fd | -fs-diff
- Filesystem diff
-
- -Rf | -reset
- Reset added files
-
- -Cp | -create-pkg
- Create package from fs diff
-
- -Il | -install-local
- Install package from local tarball
-
- -ignore-deps-check
- Skip dependancies check
- `
- helpMsg = fmt.Sprintf(helpMsg, os.Args[0])
- fmt.Println(helpMsg)
- }
-
- func main() {
- var (
- getFilesystemDiffFlag bool
- getFilesystemDiffFlagLong bool
- addFileDiffFlag bool
- addFileDiffFlagLong bool
- commitAddedFilesFlag bool
- commitAddedFilesFlagLong bool
- resetAddedFilesFlag bool
- resetAddedFilesFlagLong bool
-
- createPackageFlag bool
- createPackageFlagLong bool
- installLocalPackageFlag bool
- installLocalPackageFlagLong bool
- ignoreDepsCheckFlag bool
-
- verboseOutputFlag bool
- verboseOutputFlagLong bool
-
- e error
- )
-
- flag.Usage = HelpMsg
-
- e = Helper.CheckRoot()
- if e != nil {
- fmt.Println(Color.Fatal(e))
- return
- }
-
- e = Database.InitDB()
- if e != nil {
- panic(e)
- }
-
- defer Database.DB.Close()
- defer Database.FsDB.Close()
-
- // TODO: Rework usage function
-
- // Initialise flags
- flag.BoolVar(&verboseOutputFlag, "V", false, "Verbose output")
- flag.BoolVar(&verboseOutputFlagLong, "verbose", false, "Verbose output")
-
- flag.BoolVar(&getFilesystemDiffFlag, "Fd", false, "Filesystem diff")
- flag.BoolVar(&getFilesystemDiffFlagLong, "fs-diff", false, "Filesystem diff")
-
- flag.BoolVar(&addFileDiffFlag, "Af", false, "Add files")
- flag.BoolVar(&addFileDiffFlagLong, "add-files", false, "Add files")
-
- flag.BoolVar(&commitAddedFilesFlag, "Cf", false, "Commit files")
- flag.BoolVar(&commitAddedFilesFlagLong, "commit", false, "Commit files")
-
- flag.BoolVar(&resetAddedFilesFlag, "Rf", false, "Reset added files")
- flag.BoolVar(&resetAddedFilesFlagLong, "reset", false, "Reset added files")
-
- flag.BoolVar(&createPackageFlag, "Cp", false, "Create package from fs diff")
- flag.BoolVar(&createPackageFlagLong, "create-pkg", false, "Create package from fs diff")
-
- flag.BoolVar(&installLocalPackageFlag, "Il", false, "Install package from local tarball")
- flag.BoolVar(&installLocalPackageFlagLong, "install-local", false, "Install package from local tarball")
-
- flag.BoolVar(&ignoreDepsCheckFlag, "ignore-deps-check", false, "Ignore dependancies check")
-
- flag.Parse()
-
- Variables.VerboseOutput = verboseOutputFlag || verboseOutputFlagLong
- Variables.IgnoreDepsCheck = ignoreDepsCheckFlag
-
- if getFilesystemDiffFlag || getFilesystemDiffFlagLong {
- var rootPath string = Variables.RootDir
- if len(flag.Args()) > 1 {
- flag.Usage()
- fmt.Println(Color.Fatal("Option takes one optional argument"))
- return
- }
-
- if len(flag.Args()) == 1 {
- rootPath = flag.Arg(0)
- }
-
- e = Filesystem.ShowFilesystemDiff(rootPath)
- if e != nil {
- panic(e)
- }
-
- return
- }
-
- if addFileDiffFlag || addFileDiffFlagLong {
- if len(flag.Args()) > 1 || len(flag.Args()) < 1 {
- fmt.Println(Color.Fatal("Must supply one argument"))
- flag.Usage()
- return
- }
- e = Filesystem.PickFiles(flag.Arg(0))
- if e != nil {
- panic(e)
- }
- return
- }
-
- if commitAddedFilesFlag || commitAddedFilesFlagLong {
- e = Filesystem.CommitFiles()
- if e != nil {
- panic(e)
- }
- return
- }
-
- if resetAddedFilesFlag || resetAddedFilesFlagLong {
- e = Filesystem.ResetAllPickedFiles()
- if e != nil {
- panic(e)
- }
- return
- }
-
- if createPackageFlag || createPackageFlagLong {
- e = Package.CreatePackage()
- if e != nil {
- panic(e)
- }
- return
- }
-
- if installLocalPackageFlag || installLocalPackageFlagLong {
- e = Package.InstallPackage(flag.Args())
- if e != nil {
- panic(e)
- }
- return
- }
-
- flag.Usage()
- fmt.Println(Color.Fatal("Nothing to do"))
-
- //e := Archive.TarGzip("/tmp/test", "/tmp/test.tar.gz")
- //e := Archive.UntarGzip("/tmp/test.tar.gz", "/tmp/test")
- //fmt.Println(e)
- }
|