Documentation ¶
Index ¶
Constants ¶
const ( // LibraryProtocol holds the sylabs cloud library base URI // for more info refer to https://cloud.sylabs.io/library LibraryProtocol = "library" // ShubProtocol holds singularity hub base URI // for more info refer to https://singularity-hub.org/ ShubProtocol = "shub" // HTTPProtocol holds the remote http base URI HTTPProtocol = "http" // HTTPSProtocol holds the remote https base URI HTTPSProtocol = "https" )
Variables ¶
var ( AppName string BindPaths []string HomePath string OverlayPath []string ScratchPath []string WorkdirPath string PwdPath string ShellPath string Hostname string Network string NetworkArgs []string DNS string Security []string CgroupsPath string ContainLibsPath []string IsBoot bool IsFakeroot bool IsCleanEnv bool IsContained bool IsContainAll bool IsWritable bool IsWritableTmpfs bool Nvidia bool NoHome bool NoInit bool NoNvidia bool NetNamespace bool UtsNamespace bool UserNamespace bool PidNamespace bool IpcNamespace bool AllowSUID bool KeepPrivs bool NoPrivs bool AddCaps string DropCaps string )
actionflags.go contains flag variables for action-like commands to draw from
var ( CapUser string CapGroup string CapListAll bool )
contains flag variables for capability commands
var ( // PullLibraryURI holds the base URI to a Sylabs library API instance PullLibraryURI string // PullImageName holds the name to be given to the pulled image PullImageName string )
var AppsCmd = &cobra.Command{ DisableFlagsInUseLine: true, Use: docs.AppsUse, Short: docs.AppsShort, Long: docs.AppsLong, Example: docs.AppsExample, Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { if _, err := os.Stat(args[0]); err != nil { sylog.Fatalf("Container not found: %s", err) } abspath, err := filepath.Abs(args[0]) if err != nil { sylog.Fatalf("While getting absolute path: %s", err) } name := filepath.Base(abspath) a := []string{"/bin/sh", "-c", listAppsCommand} starter := buildcfg.LIBEXECDIR + "/singularity/bin/starter-suid" procname := "Singularity apps" Env := []string{sylog.GetEnvVar()} engineConfig := singularityConfig.NewConfig() ociConfig := &oci.Config{} generator := generate.Generator{Config: &ociConfig.Spec} engineConfig.OciConfig = ociConfig generator.SetProcessArgs(a) generator.SetProcessCwd("/") engineConfig.SetImage(abspath) cfg := &config.Common{ EngineName: singularityConfig.Name, ContainerID: name, EngineConfig: engineConfig, } configData, err := json.Marshal(cfg) if err != nil { sylog.Fatalf("CLI Failed to marshal CommonEngineConfig: %s\n", err) } if err := exec.Pipe(starter, []string{procname}, Env, configData); err != nil { sylog.Fatalf("%s", err) } }, }
AppsCmd singularity apps <container path>
var BuildCmd = &cobra.Command{ DisableFlagsInUseLine: true, Args: cobra.ExactArgs(2), Use: docs.BuildUse, Short: docs.BuildShort, Long: docs.BuildLong, Example: docs.BuildExample, PreRun: preRun, Run: run, TraverseChildren: true, }
BuildCmd represents the build command
var BuildConfigCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { printParam("PACKAGE_NAME", buildcfg.PACKAGE_NAME) printParam("PACKAGE_VERSION", buildcfg.PACKAGE_VERSION) printParam("BUILDDIR", buildcfg.BUILDDIR) printParam("PREFIX", buildcfg.PREFIX) printParam("EXECPREFIX", buildcfg.EXECPREFIX) printParam("BINDIR", buildcfg.BINDIR) printParam("SBINDIR", buildcfg.SBINDIR) printParam("LIBEXECDIR", buildcfg.LIBEXECDIR) printParam("DATAROOTDIR", buildcfg.DATAROOTDIR) printParam("DATADIR", buildcfg.DATADIR) printParam("SYSCONFDIR", buildcfg.SYSCONFDIR) printParam("SHAREDSTATEDIR", buildcfg.SHAREDSTATEDIR) printParam("LOCALSTATEDIR", buildcfg.LOCALSTATEDIR) printParam("RUNSTATEDIR", buildcfg.RUNSTATEDIR) printParam("INCLUDEDIR", buildcfg.INCLUDEDIR) printParam("DOCDIR", buildcfg.DOCDIR) printParam("INFODIR", buildcfg.INFODIR) printParam("LIBDIR", buildcfg.LIBDIR) printParam("LOCALEDIR", buildcfg.LOCALEDIR) printParam("MANDIR", buildcfg.MANDIR) printParam("SINGULARITY_CONFDIR", buildcfg.SINGULARITY_CONFDIR) printParam("SESSIONDIR", buildcfg.SESSIONDIR) }, DisableFlagsInUseLine: true, Hidden: true, Args: cobra.ExactArgs(0), Use: "buildcfg", Short: "Output the currently set compile-time parameters", Example: "$ singularity buildcfg", }
BuildConfigCmd outputs a list of the compile-time parameters with which singularity was compiled
var CacheCleanCmd = &cobra.Command{ Args: cobra.ExactArgs(0), DisableFlagsInUseLine: true, Run: func(cmd *cobra.Command, args []string) { if err := cacheCleanCmd(); err != nil { os.Exit(2) } }, Use: docs.CacheCleanUse, Short: docs.CacheCleanShort, Long: docs.CacheCleanLong, Example: docs.CacheCleanExample, }
CacheCleanCmd : is `singularity cache clean' and will clear your local singularity cache
var CacheCmd = &cobra.Command{ RunE: func(cmd *cobra.Command, args []string) error { return errors.New("Invalid command") }, DisableFlagsInUseLine: true, Use: docs.CacheUse, Short: docs.CacheShort, Long: docs.CacheLong, Example: docs.CacheExample, SilenceErrors: true, }
CacheCmd : aka, `singularity cache`
var CacheListCmd = &cobra.Command{ Args: cobra.ExactArgs(0), DisableFlagsInUseLine: true, Run: func(cmd *cobra.Command, args []string) { if err := cacheListCmd(); err != nil { os.Exit(2) } }, Use: docs.CacheListUse, Short: docs.CacheListShort, Long: docs.CacheListLong, Example: docs.CacheListExample, }
CacheListCmd : is `singularity cache list' and will list your local singularity cache
var CapabilityAddCmd = &cobra.Command{ Args: cobra.ExactArgs(1), DisableFlagsInUseLine: true, Run: func(cmd *cobra.Command, args []string) { c := singularity.CapManageConfig{ Caps: args[0], User: CapUser, Group: CapGroup, } if err := singularity.CapabilityAdd(buildcfg.CAPABILITY_FILE, c); err != nil { sylog.Fatalf("Unable to add capabilities: %s", err) } }, Use: docs.CapabilityAddUse, Short: docs.CapabilityAddShort, Long: docs.CapabilityAddLong, Example: docs.CapabilityAddExample, }
CapabilityAddCmd singularity capability add
var CapabilityAvailCmd = &cobra.Command{ Args: cobra.RangeArgs(0, 1), DisableFlagsInUseLine: true, Run: func(cmd *cobra.Command, args []string) { caps := "" if len(args) > 0 { caps = args[0] } c := singularity.CapAvailConfig{ Caps: caps, Desc: len(args) == 0, } if err := singularity.CapabilityAvail(c); err != nil { sylog.Fatalf("Unable to list available capabilities: %s", err) } }, Use: docs.CapabilityAvailUse, Short: docs.CapabilityAvailShort, Long: docs.CapabilityAvailLong, Example: docs.CapabilityAvailExample, }
CapabilityAvailCmd singularity capability avail
var CapabilityCmd = &cobra.Command{ RunE: func(cmd *cobra.Command, args []string) error { return errors.New("Invalid command") }, DisableFlagsInUseLine: true, Aliases: []string{"caps"}, Use: docs.CapabilityUse, Short: docs.CapabilityShort, Long: docs.CapabilityLong, Example: docs.CapabilityExample, SilenceErrors: true, }
CapabilityCmd is the capability command
var CapabilityDropCmd = &cobra.Command{ Args: cobra.ExactArgs(1), DisableFlagsInUseLine: true, Run: func(cmd *cobra.Command, args []string) { c := singularity.CapManageConfig{ Caps: args[0], User: CapUser, Group: CapGroup, } if err := singularity.CapabilityDrop(buildcfg.CAPABILITY_FILE, c); err != nil { sylog.Fatalf("Unable to drop capabilities: %s", err) } }, Use: docs.CapabilityDropUse, Short: docs.CapabilityDropShort, Long: docs.CapabilityDropLong, Example: docs.CapabilityDropExample, }
CapabilityDropCmd singularity capability drop
var CapabilityListCmd = &cobra.Command{ Args: cobra.RangeArgs(0, 1), DisableFlagsInUseLine: true, Run: func(cmd *cobra.Command, args []string) { userGroup := "" if len(args) == 1 { userGroup = args[0] } c := singularity.CapListConfig{ User: userGroup, Group: userGroup, All: len(args) == 0, } if err := singularity.CapabilityList(buildcfg.CAPABILITY_FILE, c); err != nil { sylog.Fatalf("Unable to list capabilities: %s", err) } }, Use: docs.CapabilityListUse, Short: docs.CapabilityListShort, Long: docs.CapabilityListLong, Example: docs.CapabilityListExample, }
CapabilityListCmd singularity capability list
var ExecCmd = &cobra.Command{ DisableFlagsInUseLine: true, TraverseChildren: true, Args: cobra.MinimumNArgs(2), PreRun: replaceURIWithImage, Run: func(cmd *cobra.Command, args []string) { a := append([]string{"/.singularity.d/actions/exec"}, args[1:]...) execStarter(cmd, args[0], a, "") }, Use: docs.ExecUse, Short: docs.ExecShort, Long: docs.ExecLong, Example: docs.ExecExamples, }
ExecCmd represents the exec command
var InspectCmd = &cobra.Command{ DisableFlagsInUseLine: true, Args: cobra.ExactArgs(1), Use: docs.InspectUse, Short: docs.InspectShort, Long: docs.InspectLong, Example: docs.InspectExample, Run: func(cmd *cobra.Command, args []string) { if _, err := os.Stat(args[0]); err != nil { sylog.Fatalf("container not found: %s", err) } abspath, err := filepath.Abs(args[0]) if err != nil { sylog.Fatalf("While determining absolute file path: %v", err) } name := filepath.Base(abspath) attributes := make(map[string]string) a := []string{"/bin/sh", "-c", ""} prefix := "@@@start" delimiter := "@@@end" if helpfile { sylog.Debugf("Inspection of helpfile selected.") a[2] += fmt.Sprintf(" echo '%v\nhelpfile';", prefix) a[2] += getHelpFile(AppName) a[2] += fmt.Sprintf(" echo '%v';", delimiter) } if deffile { sylog.Debugf("Inspection of deffile selected.") a[2] += fmt.Sprintf(" echo '%v\ndeffile';", prefix) a[2] += " cat .singularity.d/Singularity;" a[2] += fmt.Sprintf(" echo '%v';", delimiter) } if runscript { sylog.Debugf("Inspection of runscript selected.") a[2] += fmt.Sprintf(" echo '%v\nrunscript';", prefix) a[2] += getRunscriptFile(AppName) a[2] += fmt.Sprintf(" echo '%v';", delimiter) } if testfile { sylog.Debugf("Inspection of test selected.") a[2] += fmt.Sprintf(" echo '%v\ntest';", prefix) a[2] += getTestFile(AppName) a[2] += fmt.Sprintf(" echo '%v';", delimiter) } if environment { sylog.Debugf("Inspection of environment selected.") a[2] += fmt.Sprintf(" echo '%v\nenvironment';", prefix) a[2] += getEnvFile(AppName) a[2] += fmt.Sprintf(" echo '%v';", delimiter) } if labels || len(a[2]) == 0 { sylog.Debugf("Inspection of labels as default.") a[2] += fmt.Sprintf(" echo '%v\nlabels';", prefix) a[2] += getLabelsFile(AppName) a[2] += fmt.Sprintf(" echo '%v';", delimiter) } fileContents, err := getFileContent(abspath, name, a) if err != nil { sylog.Fatalf("While getting helpfile: %v", err) } contentSlice := strings.Split(fileContents, delimiter) for _, s := range contentSlice { s = strings.TrimSpace(s) if strings.HasPrefix(s, prefix) { split := strings.SplitN(s, "\n", 3) if len(split) == 3 { attributes[split[1]] = split[2] } else if len(split) == 2 { sylog.Warningf("%v metadata was not found.", split[1]) } } } if jsonfmt { // store this in a struct, then marshal the struct to json type result struct { Data map[string]string `json:"attributes"` T string `json:"type"` } d := result{ Data: attributes, T: "container", } b, err := json.MarshalIndent(d, "", "\t") if err != nil { log.Fatal(err) } fmt.Println(string(b)) } else { for _, value := range attributes { fmt.Println("\n" + value + "\n") } } }, TraverseChildren: true, }
InspectCmd represents the build command
var InstanceCmd = &cobra.Command{ RunE: func(cmd *cobra.Command, args []string) error { return errors.New("Invalid command") }, DisableFlagsInUseLine: true, Use: docs.InstanceUse, Short: docs.InstanceShort, Long: docs.InstanceLong, Example: docs.InstanceExample, SilenceErrors: true, }
InstanceCmd singularity instance
var InstanceListCmd = &cobra.Command{ Args: cobra.RangeArgs(0, 1), Run: func(cmd *cobra.Command, args []string) { listInstance() }, DisableFlagsInUseLine: true, Use: docs.InstanceListUse, Short: docs.InstanceListShort, Long: docs.InstanceListLong, Example: docs.InstanceListExample, }
InstanceListCmd singularity instance list
var InstanceStartCmd = &cobra.Command{ Args: cobra.MinimumNArgs(2), PreRun: replaceURIWithImage, DisableFlagsInUseLine: true, Run: func(cmd *cobra.Command, args []string) { a := append([]string{"/.singularity.d/actions/start"}, args[2:]...) execStarter(cmd, args[0], a, args[1]) }, Use: docs.InstanceStartUse, Short: docs.InstanceStartShort, Long: docs.InstanceStartLong, Example: docs.InstanceStartExample, }
InstanceStartCmd singularity instance start
var InstanceStopCmd = &cobra.Command{ DisableFlagsInUseLine: true, RunE: func(cmd *cobra.Command, args []string) error { if len(args) > 0 && !stopAll { stopInstance(args[0]) return nil } else if stopAll { stopInstance("*") return nil } else { return errors.New("Invalid command") } }, Use: docs.InstanceStopUse, Short: docs.InstanceStopShort, Long: docs.InstanceStopLong, Example: docs.InstanceStopExample, }
InstanceStopCmd singularity instance stop
var KeyCmd = &cobra.Command{ RunE: func(cmd *cobra.Command, args []string) error { return errors.New("Invalid command") }, DisableFlagsInUseLine: true, Use: docs.KeyUse, Short: docs.KeyShort, Long: docs.KeyLong, Example: docs.KeyExample, SilenceErrors: true, }
KeyCmd is the 'key' command that allows management of key stores
var KeyListCmd = &cobra.Command{ Args: cobra.ExactArgs(0), DisableFlagsInUseLine: true, Run: func(cmd *cobra.Command, args []string) { if err := doKeyListCmd(secret); err != nil { os.Exit(2) } }, Use: docs.KeyListUse, Short: docs.KeyListShort, Long: docs.KeyListLong, Example: docs.KeyListExample, }
KeyListCmd is `singularity key list' and lists local store OpenPGP keys
var KeyNewPairCmd = &cobra.Command{ Args: cobra.ExactArgs(0), DisableFlagsInUseLine: true, Run: func(cmd *cobra.Command, args []string) { if _, err := sypgp.GenKeyPair(); err != nil { sylog.Fatalf("creating newpair failed: %v", err) } }, Use: docs.KeyNewPairUse, Short: docs.KeyNewPairShort, Long: docs.KeyNewPairLong, Example: docs.KeyNewPairExample, }
KeyNewPairCmd is `singularity key newpair' and generate a new OpenPGP key pair
var KeyPullCmd = &cobra.Command{ Args: cobra.ExactArgs(1), DisableFlagsInUseLine: true, PreRun: sylabsToken, Run: func(cmd *cobra.Command, args []string) { if err := doKeyPullCmd(args[0], keyServerURL); err != nil { sylog.Errorf("pull failed: %s", err) os.Exit(2) } }, Use: docs.KeyPullUse, Short: docs.KeyPullShort, Long: docs.KeyPullLong, Example: docs.KeyPullExample, }
KeyPullCmd is `singularity key pull' and fetches public keys from a key server
var KeyPushCmd = &cobra.Command{ Args: cobra.ExactArgs(1), DisableFlagsInUseLine: true, PreRun: sylabsToken, Run: func(cmd *cobra.Command, args []string) { if err := doKeyPushCmd(args[0], keyServerURL); err != nil { sylog.Errorf("push failed: %s", err) os.Exit(2) } }, Use: docs.KeyPushUse, Short: docs.KeyPushShort, Long: docs.KeyPushLong, Example: docs.KeyPushExample, }
KeyPushCmd is `singularity key list' and lists local store OpenPGP keys
var KeySearchCmd = &cobra.Command{ Args: cobra.ExactArgs(1), DisableFlagsInUseLine: true, PreRun: sylabsToken, Run: func(cmd *cobra.Command, args []string) { if err := doKeySearchCmd(args[0], keyServerURL); err != nil { sylog.Errorf("search failed: %s", err) os.Exit(2) } }, Use: docs.KeySearchUse, Short: docs.KeySearchShort, Long: docs.KeySearchLong, Example: docs.KeySearchExample, }
KeySearchCmd is `singularity key search' and look for public keys from a key server
var KeysCmd = &cobra.Command{ RunE: func(cmd *cobra.Command, args []string) error { return errors.New("Invalid command") }, DisableFlagsInUseLine: true, Hidden: true, Use: docs.KeysUse, Short: docs.KeyShort, Long: docs.KeyLong, Example: docs.KeyExample, SilenceErrors: true, }
KeysCmd is the 'keys' command that allows management of key stores
var OciAttachCmd = &cobra.Command{ Args: cobra.ExactArgs(1), DisableFlagsInUseLine: true, PreRun: ensureRootPriv, Run: func(cmd *cobra.Command, args []string) { if err := singularity.OciAttach(args[0]); err != nil { sylog.Fatalf("%s", err) } }, Use: docs.OciAttachUse, Short: docs.OciAttachShort, Long: docs.OciAttachLong, Example: docs.OciAttachExample, }
OciAttachCmd represents oci attach command.
var OciCmd = &cobra.Command{ Run: nil, DisableFlagsInUseLine: true, Use: docs.OciUse, Short: docs.OciShort, Long: docs.OciLong, Example: docs.OciExample, }
OciCmd singularity oci runtime.
var OciCreateCmd = &cobra.Command{ Args: cobra.ExactArgs(1), DisableFlagsInUseLine: true, PreRun: ensureRootPriv, Run: func(cmd *cobra.Command, args []string) { if err := singularity.OciCreate(args[0], &ociArgs); err != nil { sylog.Fatalf("%s", err) } }, Use: docs.OciCreateUse, Short: docs.OciCreateShort, Long: docs.OciCreateLong, Example: docs.OciCreateExample, }
OciCreateCmd represents oci create command.
var OciDeleteCmd = &cobra.Command{ Args: cobra.ExactArgs(1), DisableFlagsInUseLine: true, PreRun: ensureRootPriv, Run: func(cmd *cobra.Command, args []string) { if err := singularity.OciDelete(args[0]); err != nil { sylog.Fatalf("%s", err) } }, Use: docs.OciDeleteUse, Short: docs.OciDeleteShort, Long: docs.OciDeleteLong, Example: docs.OciDeleteExample, }
OciDeleteCmd represents oci delete command.
var OciExecCmd = &cobra.Command{ Args: cobra.MinimumNArgs(1), DisableFlagsInUseLine: true, PreRun: ensureRootPriv, Run: func(cmd *cobra.Command, args []string) { if err := singularity.OciExec(args[0], args[1:]); err != nil { sylog.Fatalf("%s", err) } }, Use: docs.OciExecUse, Short: docs.OciExecShort, Long: docs.OciExecLong, Example: docs.OciExecExample, }
OciExecCmd represents oci exec command.
var OciKillCmd = &cobra.Command{ Args: cobra.MinimumNArgs(1), DisableFlagsInUseLine: true, PreRun: ensureRootPriv, Run: func(cmd *cobra.Command, args []string) { killSignal := "" if len(args) > 1 && args[1] != "" { killSignal = args[1] } else { killSignal = ociArgs.KillSignal } if err := singularity.OciKill(args[0], killSignal, 0); err != nil { sylog.Fatalf("%s", err) } }, Use: docs.OciKillUse, Short: docs.OciKillShort, Long: docs.OciKillLong, Example: docs.OciKillExample, }
OciKillCmd represents oci kill command.
var OciMountCmd = &cobra.Command{ Args: cobra.ExactArgs(2), DisableFlagsInUseLine: true, PreRun: ensureRootPriv, Run: func(cmd *cobra.Command, args []string) { if err := singularity.OciMount(args[0], args[1]); err != nil { sylog.Fatalf("%s", err) } }, Use: docs.OciMountUse, Short: docs.OciMountShort, Long: docs.OciMountLong, Example: docs.OciMountExample, }
OciMountCmd represents oci mount command.
var OciPauseCmd = &cobra.Command{ Args: cobra.ExactArgs(1), DisableFlagsInUseLine: true, PreRun: ensureRootPriv, Run: func(cmd *cobra.Command, args []string) { if err := singularity.OciPauseResume(args[0], true); err != nil { sylog.Fatalf("%s", err) } }, Use: docs.OciPauseUse, Short: docs.OciPauseShort, Long: docs.OciPauseLong, Example: docs.OciPauseExample, }
OciPauseCmd represents oci pause command.
var OciResumeCmd = &cobra.Command{ Args: cobra.ExactArgs(1), DisableFlagsInUseLine: true, PreRun: ensureRootPriv, Run: func(cmd *cobra.Command, args []string) { if err := singularity.OciPauseResume(args[0], false); err != nil { sylog.Fatalf("%s", err) } }, Use: docs.OciResumeUse, Short: docs.OciResumeShort, Long: docs.OciResumeLong, Example: docs.OciResumeExample, }
OciResumeCmd represents oci resume command.
var OciRunCmd = &cobra.Command{ Args: cobra.ExactArgs(1), DisableFlagsInUseLine: true, PreRun: ensureRootPriv, Run: func(cmd *cobra.Command, args []string) { if err := singularity.OciRun(args[0], &ociArgs); err != nil { sylog.Fatalf("%s", err) } }, Use: docs.OciRunUse, Short: docs.OciRunShort, Long: docs.OciRunLong, Example: docs.OciRunExample, }
OciRunCmd allow to create/start in row.
var OciStartCmd = &cobra.Command{ Args: cobra.ExactArgs(1), DisableFlagsInUseLine: true, PreRun: ensureRootPriv, Run: func(cmd *cobra.Command, args []string) { if err := singularity.OciStart(args[0]); err != nil { sylog.Fatalf("%s", err) } }, Use: docs.OciStartUse, Short: docs.OciStartShort, Long: docs.OciStartLong, Example: docs.OciStartExample, }
OciStartCmd represents oci start command.
var OciStateCmd = &cobra.Command{ Args: cobra.ExactArgs(1), DisableFlagsInUseLine: true, PreRun: ensureRootPriv, Run: func(cmd *cobra.Command, args []string) { if err := singularity.OciState(args[0], &ociArgs); err != nil { sylog.Fatalf("%s", err) } }, Use: docs.OciStateUse, Short: docs.OciStateShort, Long: docs.OciStateLong, Example: docs.OciStateExample, }
OciStateCmd represents oci state command.
var OciUmountCmd = &cobra.Command{ Args: cobra.ExactArgs(1), DisableFlagsInUseLine: true, PreRun: ensureRootPriv, Run: func(cmd *cobra.Command, args []string) { if err := singularity.OciUmount(args[0]); err != nil { sylog.Fatalf("%s", err) } }, Use: docs.OciUmountUse, Short: docs.OciUmountShort, Long: docs.OciUmountLong, Example: docs.OciUmountExample, }
OciUmountCmd represents oci mount command.
var OciUpdateCmd = &cobra.Command{ Args: cobra.MinimumNArgs(1), DisableFlagsInUseLine: true, PreRun: ensureRootPriv, Run: func(cmd *cobra.Command, args []string) { if err := singularity.OciUpdate(args[0], &ociArgs); err != nil { sylog.Fatalf("%s", err) } }, Use: docs.OciUpdateUse, Short: docs.OciUpdateShort, Long: docs.OciUpdateLong, Example: docs.OciUpdateExample, }
OciUpdateCmd represents oci update command.
var PullCmd = &cobra.Command{ DisableFlagsInUseLine: true, Args: cobra.RangeArgs(1, 2), PreRun: sylabsToken, Run: pullRun, Use: docs.PullUse, Short: docs.PullShort, Long: docs.PullLong, Example: docs.PullExample, }
PullCmd singularity pull
var PushCmd = &cobra.Command{ DisableFlagsInUseLine: true, Args: cobra.ExactArgs(2), PreRun: sylabsToken, Run: func(cmd *cobra.Command, args []string) { if authToken != "" { err := client.UploadImage(args[0], args[1], PushLibraryURI, authToken, "No Description") if err != nil { sylog.Fatalf("%v\n", err) } } else { sylog.Fatalf("Couldn't push image to library: %v", authWarning) } }, Use: docs.PushUse, Short: docs.PushShort, Long: docs.PushLong, Example: docs.PushExample, }
PushCmd singularity push
var ( // PushLibraryURI holds the base URI to a Sylabs library API instance PushLibraryURI string )
var RunCmd = &cobra.Command{ DisableFlagsInUseLine: true, TraverseChildren: true, Args: cobra.MinimumNArgs(1), PreRun: replaceURIWithImage, Run: func(cmd *cobra.Command, args []string) { a := append([]string{"/.singularity.d/actions/run"}, args[1:]...) execStarter(cmd, args[0], a, "") }, Use: docs.RunUse, Short: docs.RunShort, Long: docs.RunLong, Example: docs.RunExamples, }
RunCmd represents the run command
var RunHelpCmd = &cobra.Command{ DisableFlagsInUseLine: true, PreRun: sylabsToken, Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { if _, err := os.Stat(args[0]); err != nil { sylog.Fatalf("container not found: %s", err) } abspath, err := filepath.Abs(args[0]) if err != nil { sylog.Fatalf("While getting absolute path: %s", err) } name := filepath.Base(abspath) a := []string{"/bin/sh", "-c", getCommand(getHelpPath(cmd))} starter := buildcfg.LIBEXECDIR + "/singularity/bin/starter-suid" procname := "Singularity help" Env := []string{sylog.GetEnvVar()} engineConfig := singularityConfig.NewConfig() ociConfig := &oci.Config{} generator := generate.Generator{Config: &ociConfig.Spec} engineConfig.OciConfig = ociConfig generator.SetProcessArgs(a) generator.SetProcessCwd("/") engineConfig.SetImage(abspath) cfg := &config.Common{ EngineName: singularityConfig.Name, ContainerID: name, EngineConfig: engineConfig, } configData, err := json.Marshal(cfg) if err != nil { sylog.Fatalf("CLI Failed to marshal CommonEngineConfig: %s\n", err) } if err := exec.Pipe(starter, []string{procname}, Env, configData); err != nil { sylog.Fatalf("%s", err) } }, Use: docs.RunHelpUse, Short: docs.RunHelpShort, Long: docs.RunHelpLong, Example: docs.RunHelpExample, }
RunHelpCmd singularity run-help <image>
var SearchCmd = &cobra.Command{ DisableFlagsInUseLine: true, Args: cobra.ExactArgs(1), PreRun: sylabsToken, Run: func(cmd *cobra.Command, args []string) { if err := client.SearchLibrary(args[0], SearchLibraryURI, authToken); err != nil { sylog.Fatalf("Couldn't search library: %v", err) } }, Use: docs.SearchUse, Short: docs.SearchShort, Long: docs.SearchLong, Example: docs.SearchExample, }
SearchCmd singularity search
var ( // SearchLibraryURI holds the base URI to a Sylabs library API instance SearchLibraryURI string )
var ShellCmd = &cobra.Command{ DisableFlagsInUseLine: true, TraverseChildren: true, Args: cobra.MinimumNArgs(1), PreRun: replaceURIWithImage, Run: func(cmd *cobra.Command, args []string) { a := []string{"/.singularity.d/actions/shell"} execStarter(cmd, args[0], a, "") }, Use: docs.ShellUse, Short: docs.ShellShort, Long: docs.ShellLong, Example: docs.ShellExamples, }
ShellCmd represents the shell command
var SignCmd = &cobra.Command{ DisableFlagsInUseLine: true, Args: cobra.ExactArgs(1), PreRun: sylabsToken, Run: func(cmd *cobra.Command, args []string) { fmt.Printf("Signing image: %s\n", args[0]) if err := doSignCmd(args[0], keyServerURL); err != nil { sylog.Errorf("signing container failed: %s", err) os.Exit(2) } fmt.Printf("Signature created and applied to %v\n", args[0]) }, Use: docs.SignUse, Short: docs.SignShort, Long: docs.SignLong, Example: docs.SignExample, }
SignCmd singularity sign
var SingularityCmd = &cobra.Command{ TraverseChildren: true, DisableFlagsInUseLine: true, PersistentPreRun: persistentPreRun, RunE: func(cmd *cobra.Command, args []string) error { return errors.New("Invalid command") }, Use: docs.SingularityUse, Version: buildcfg.PACKAGE_VERSION, Short: docs.SingularityShort, Long: docs.SingularityLong, Example: docs.SingularityExample, SilenceErrors: true, }
SingularityCmd is the base command when called without any subcommands
var TestCmd = &cobra.Command{ DisableFlagsInUseLine: true, TraverseChildren: true, Args: cobra.MinimumNArgs(1), PreRun: replaceURIWithImage, Run: func(cmd *cobra.Command, args []string) { a := append([]string{"/.singularity.d/actions/test"}, args[1:]...) execStarter(cmd, args[0], a, "") }, Use: docs.RunTestUse, Short: docs.RunTestShort, Long: docs.RunTestLong, Example: docs.RunTestExample, }
TestCmd represents the test command
var VerifyCmd = &cobra.Command{ DisableFlagsInUseLine: true, Args: cobra.ExactArgs(1), PreRun: sylabsToken, Run: func(cmd *cobra.Command, args []string) { fmt.Printf("Verifying image: %s\n", args[0]) if err := doVerifyCmd(args[0], keyServerURL); err != nil { sylog.Errorf("verification failed: %s", err) os.Exit(2) } }, Use: docs.VerifyUse, Short: docs.VerifyShort, Long: docs.VerifyLong, Example: docs.VerifyExample, }
VerifyCmd singularity verify
var VersionCmd = &cobra.Command{ DisableFlagsInUseLine: true, Run: func(cmd *cobra.Command, args []string) { fmt.Println(buildcfg.PACKAGE_VERSION) }, Use: "version", Short: "Show the version for Singularity", }
VersionCmd displays installed singularity version
Functions ¶
func ExecuteSingularity ¶
func ExecuteSingularity()
ExecuteSingularity adds all child commands to the root command and sets flags appropriately. This is called by main.main(). It only needs to happen once to the root command (singularity).
func TraverseParentsUses ¶
TraverseParentsUses walks the parent commands and outputs a properly formatted use string
Types ¶
This section is empty.
Source Files ¶
- action_flags.go
- actions.go
- actions_linux.go
- apps_linux.go
- build.go
- build_linux.go
- buildconfig.go
- cache_clean_linux.go
- cache_linux.go
- cache_list_linux.go
- capability_add_linux.go
- capability_avail_linux.go
- capability_drop_linux.go
- capability_linux.go
- capability_list_linux.go
- inspect_linux.go
- instance_linux.go
- instance_list_linux.go
- instance_start_linux.go
- instance_stop_linux.go
- key.go
- key_list.go
- key_newpair.go
- key_pull.go
- key_push.go
- key_search.go
- oci_linux.go
- pull.go
- push.go
- run_help_linux.go
- search.go
- sign.go
- singularity.go
- verify.go