Swiftpack.co - Package - ColdGrub1384/LibTerm

LibTerm

LibTerm is a terminal for iOS.

Download on the App Store

This app is like @louisdh - OpenTerm but this terminal is embeddable in your own app and it supports Lua and Python 2.7.

Motivation

I like a lot OpenTerm but I wanted to make the code better. Also, I wanted to integrate a local shell into Pisth so I made the project embeddable. I will upload to app to the App Store soon since OpenTerm is no more available. This is not a fork from OpenTerm, I rewrote the code.

Features

The app supports most of OpenTerm features, but LibTerm has Python 2.7 instead of Cub. It supports opening directories outside the sandbox with UIDocumentPickerViewController, multi tabbing and suggestions. All errors are shown in red!

package

LibTerm contains a package command. With package, you can download and install third party commands. You can publish your own commands by submitting a Pull Request to https://github.com/ColdGrub1384/LibTerm-Packages.

Building

  1. Clone all submodules
  2. Download release.tar.gz from ios_system latest release.
  3. Unarchive the file.
  4. Move ios_system to the ios_system.

Embedding

LibTerm is embeddable so you can use it in your own app. To do it, download releases and embed all frameworks in your app. Then, you can present a LTTerminalViewController. You can also compile the LibTermCore framework and embed it in your app. You will need to embed InputAssistant and ios_system also. You also have to include commandDictionary.plist and extraCommandsDictionary.plist to your app's bundle.

Usage

Instantiating the terminal

LTTerminalViewController.makeTerminal(preferences: <#LTTerminalViewController.Preferences#>, shell: <#LibShell#>)

Accessing the Text view

LTTerminalViewController.terminalTextView

Extending

You can add a command by subclassing LibShell:


func python3_main(argc: Int, argv: [String], io: LTIO) -> Int32 {
    // Code here...
    
    return 0
}

class Shell: LibShell {

    var commands: [String : LTCommand] {
        return super.commands+["python3", python3_main]
    }

}

let terminal = LTTerminalViewController(shell: Shell())

You can also add it to the suggestion bar:

LTHelp.append(LTCommandHelp(name: "python3", commandInput: .file))

See documentation

Acknowledgments

Github

link
Stars: 12
Help us keep the lights on

Dependencies

Used By

Total:

Releases

1.4 - Nov 7, 2018

The API was redesigned.

( ! ) The release binary is a fat framework, working for iPhones, iPads and Simulator. Fat frameworks aren't allowed in the App Store. To distribute your app to the App Store, you have to build the framework yourself ( ! )

This release fixes bugs. To include LibTermCore in your app, you have to include InputAssistant and ios_system too.

1.3.1 - Oct 18, 2018

This update fixes bugs.

1.3 - Oct 18, 2018

This update includes more object oriented customization and the performance is improved.

1.2 - Oct 9, 2018

This release fixes bugs. To include LibTermCore in your app, you have to include InputAssistant and ios_system too.

1.1 - Oct 9, 2018

This release improves customization.