Skip to content

Commit

Permalink
Changes to work with pragtical luajit
Browse files Browse the repository at this point in the history
  • Loading branch information
jgmdev committed Sep 27, 2024
1 parent 875c1ef commit ef2d270
Show file tree
Hide file tree
Showing 7 changed files with 159 additions and 97 deletions.
80 changes: 53 additions & 27 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,36 +1,52 @@
name: CI
on: { push: { branches: [master] } }
env:
LPM_PLUGINS: https://raw.githubusercontent.com/adamharrison/lite-xl-maintenance/latest/lpm-plugins/gh.lua
permissions: write-all

jobs:
version:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.setup_release.outputs.version }}
steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4
with: { fetch-depth: 0 }
- name: Setup Release
id: setup_release
env: { GITHUB_TOKEN: "${{ github.token }}" }
run: |
wget https://github.com/lite-xl/lite-xl-plugin-manager/releases/download/latest/lpm.x86_64-linux -O lpm-latest && chmod +x lpm-latest
echo "version=`./lpm-latest gh version`" >> $GITHUB_OUTPUT
export VERSION=`git describe --tags --match "v*" | tail -c +2`
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Building terminal version $VERSION."
perl -pe 'last if $_ =~ m/^\s*#/ && $_ !~ m/#\s*$ENV{VERSION}/' < CHANGELOG.md | tail -n +2 > NOTES.md
if [[ `git tag --points-at HEAD | head -c 1` == "v" ]]; then
gh release delete -y v$VERSION || true; gh release create -t v$VERSION v$VERSION
gh release delete -y latest || true; gh release create -t latest latest
fi
gh release delete -y continuous || true; gh release create -p -t 'Continuous Release' continuous -F NOTES.md
build_linux:
needs: [version]
permissions: write-all
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
defaults: { run: { shell: bash } }
steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4
with: { fetch-depth: 0, submodules: true }
- name: Install Cross Compiler
run: |
sudo apt-get install -y gcc-aarch64-linux-gnu
- name: Build Linux
run: docker run -v .:/terminal ubuntu:14.04 bash -c 'cd /terminal && apt-get update && apt-get install -y gcc-4.8 gcc-4.8-aarch64-linux-gnu && BIN=libterminal.aarch64-linux.so CC=aarch64-linux-gnu-gcc-4.8 ./build.sh -O3 -std=c99 -D_BSD_SOURCE -D_POSIX_SOURCE -DLIBTERMINAL_VERSION=\"${{ needs.version.outputs.version }}-aarch64-linux\" && CC=gcc-4.8 BIN=libterminal.x86_64-linux.so ./build.sh -std=c99 -D_BSD_SOURCE -D_POSIX_SOURCE -O3 -DLIBTERMINAL_VERSION=\"${{ needs.version.outputs.version }}-x86_64-linux\" '
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with: { name: "Linux", path: "*.so" }
run: |
BIN=libterminal.x86_64-linux.so ./build.sh -O3 -DLIBTERMINAL_VERSION='"'${{ needs.version.outputs.version }}-x86_64-linux'"'
BIN=libterminal.aarch64-linux.so CC=aarch64-linux-gnu-gcc ./build.sh -O3 -DLIBTERMINAL_VERSION='"'${{ needs.version.outputs.version }}-aarch64-linux'"'
- name: Upload x86_64 Artifacts
uses: actions/upload-artifact@v4
with: { name: "Linux_x86_64", path: "libterminal.x86_64-linux.so" }
- name: Upload aarch64 Artifacts
uses: actions/upload-artifact@v4
with: { name: "Linux_aarch64", path: "libterminal.aarch64-linux.so" }

build_windows:
needs: [version]
Expand All @@ -39,33 +55,36 @@ jobs:
defaults: { run: { shell: bash } }
steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4
with: { fetch-depth: 0, submodules: true }
- name: Build Windows
env: { GITHUB_TOKEN: "${{ github.token }}" }
run: sudo apt-get install mingw-w64 && BIN=libterminal.x86_64-windows.dll CC=x86_64-w64-mingw32-gcc ./build.sh -O3 -DLIBTERMINAL_VERSION='"'${{ needs.version.outputs.version }}-x86_64-windows'"'
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with: { name: "Windows", path: "*.dll" }
uses: actions/upload-artifact@v4
with: { name: "Windows", path: "libterminal.x86_64-windows.dll" }

build_macos:
needs: [version]
runs-on: macos-latest
runs-on: macos-13
env:
CC: clang
steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4
with: { fetch-depth: 0, submodules: true }
- name: Build MacOS
env: { GITHUB_TOKEN: "${{ github.token }}" }
run: |
./build.sh clean
BIN=libterminal.x86_64-darwin.so ./build.sh -O3 -DLIBTERMINAL_VERSION='"'${{ needs.version.outputs.version }}-x86_64-darwin'"'
BIN=libterminal.aarch64-darwin.so CC=clang CFLAGS="-arch arm64" ./build.sh -O3 -DLIBTERMINAL_VERSION='"'${{ needs.version.outputs.version }}-x86_64-darwin'"'
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with: { name: "MacOS", path: "*.so" }
BIN=libterminal.x86_64-darwin.so MACOSX_DEPLOYMENT_TARGET=10.11 ./build.sh -O3 -DLIBTERMINAL_VERSION='"'${{ needs.version.outputs.version }}-x86_64-darwin'"'
BIN=libterminal.aarch64-darwin.so MACOSX_DEPLOYMENT_TARGET=11.0 CC=clang CFLAGS="-arch arm64" ./build.sh -O3 -DLIBTERMINAL_VERSION='"'${{ needs.version.outputs.version }}-x86_64-darwin'"'
- name: Upload x86_64 Artifacts
uses: actions/upload-artifact@v4
with: { name: "MacOS_x86_64", path: "libterminal.x86_64-darwin.so" }
- name: Upload aarch64 Artifacts
uses: actions/upload-artifact@v4
with: { name: "MacOS_aarch64", path: "libterminal.aarch64-darwin.so" }


finalize:
Expand All @@ -74,16 +93,23 @@ jobs:
environment: Release
steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4
with: { fetch-depth: 0 }
- name: Download Artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with: { path: "." }
- name: Perform Release
env:
GITHUB_TOKEN: "${{ github.token }}"
LPM_DISCORD_WEBHOOK: "${{ secrets.DISCORD_WEBHOOK }}"
run: |
wget https://github.com/lite-xl/lite-xl-plugin-manager/releases/download/latest/lpm.x86_64-linux -O lpm-latest && chmod +x lpm-latest
./lpm-latest gh release Linux/*.so MacOS/*.so Windows/*.dll
if [[ `git tag --points-at HEAD | head -c 1` == "v" ]]; then
gh release upload v${{ needs.version.outputs.version }} Linux_x86_64/*.so Linux_aarch64/*.so MacOS_x86_64/*.so MacOS_aarch64/*.so Windows/*.dll
gh release upload latest Linux_x86_64/*.so Linux_aarch64/*.so MacOS_x86_64/*.so MacOS_aarch64/*.so Windows/*.dll
git branch -f latest HEAD
git tag -f latest
git push -f origin refs/heads/latest
git push -f origin refs/tags/latest
fi
gh release upload continuous Linux_x86_64/*.so Linux_aarch64/*.so MacOS_x86_64/*.so MacOS_aarch64/*.so Windows/*.dll
git tag -f continuous
git push -f origin refs/tags/continuous
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
Copyright (c) 2023 lite-xl Team
Copyright (c) 2023 Pragtical Team

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
Expand All @@ -17,4 +18,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

33 changes: 16 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# lite-xl-terminal
# pragtical-terminal

`lite-xl-terminal` is a (mostly) fully-featured terminal emulator designed to
slot into lite-xl as a plugin for windows (Windows 10+ only), mac and linux.
`pragtical-terminal` is a (mostly) fully-featured terminal emulator designed to
slot into pragtical as a plugin for windows (Windows 10+ only), mac and linux.

![image](https://github.com/adamharrison/lite-xl-terminal/assets/1034518/eb8a72a0-ff61-4b95-b009-364ac2725f70)
![image](screenshots/preview.png)

## Description

Expand Down Expand Up @@ -51,43 +51,43 @@ More shells should work, but are not tested outright.

## Installation

The easiest way to install `lite-xl-terminal` is to use
[`lpm`](https://github.com/lite-xl/lite-xl-plugin-manager), and then run the
The easiest way to install `pragtical-terminal` is to use
[`ppm`](https://github.com/pragtical/plugin-manager), and then run the
following command:

```
lpm install terminal
ppm install terminal
```

If you want to simply try it out, you can use `lpm`'s `run` command:
If you want to simply try it out, you can use `ppm`'s `run` command:

```
lpm run terminal
ppm run terminal
```

If you want to grab it directly, and build it from the repo, on Linux, Mac
or MSYS on Windows you can do:

```
git clone --depth=1 https://github.com/adamharrison/lite-xl-terminal.git \
--recurse-submodules --shallow-submodules && cd lite-xl-terminal && \
./build.sh && cp -R plugins/terminal ~/.config/lite-xl/plugins && \
cp libterminal.so ~/.config/lite-xl/plugins/terminal
git clone --depth=1 https://github.com/pragtical/terminal.git \
--recurse-submodules --shallow-submodules && cd terminal && \
./build.sh && cp -R plugins/terminal ~/.config/pragtical/plugins && \
cp libterminal.so ~/.config/pragtical/plugins/terminal
```

If you want to install on Windows, but don't have MSYS, you can download
the files directly from our [release](https://github.com/adamharrison/lite-xl-terminal/releases/tag/latest)
the files directly from our [release](https://github.com/pragtical/terminal/releases/tag/latest)
page, download `libterminal.x86_64-windows.dll`, as well as the Source Code,
and place both the dll, and the `plugins/terminal/init.lua` from the source
code archive into your lite-xl plugins directory as `plugins/terminal/init.lua`
code archive into your pragtical plugins directory as `plugins/terminal/init.lua`
and `plugins/terminal/libterminal.x86_64-windows.dll`.

### Stanalone

If you want to use terminal as a standalone terminal, here's a handy script you can use:

```
LITE_SCALE=1 lpm run terminal --config 'config.plugins.treeview=false config.plugins.workspace=false config.always_show_tabs=false local _,_,x,y = system.get_window_size() system.set_window_size(800, 500, x, y) local TerminalView = require "plugins.terminal".class local old_close = TerminalView.close function TerminalView:close() old_close(self) os.exit(0) end core.add_thread(function() command.perform("terminal:open-tab") local node = core.root_view.root_node:get_node_for_view(core.status_view) node:close_view(core.root_view.root_node, core.status_view) end)'
PRAGTICAL_SCALE=1 ppm run terminal --config 'config.plugins.treeview=false config.plugins.workspace=false config.always_show_tabs=false local _,_,x,y = system.get_window_size() system.set_window_size(800, 500, x, y) local TerminalView = require "plugins.terminal".class local old_close = TerminalView.close function TerminalView:close() old_close(self) os.exit(0) end core.add_thread(function() command.perform("terminal:open-tab") local node = core.root_view.root_node:get_node_for_view(core.status_view) node:close_view(core.root_view.root_node, core.status_view) end)'
```

## Status
Expand All @@ -111,4 +111,3 @@ dependencies other than the native OS libraries for each OS.
```
CC=x86_64-w64-mingw32-gcc BIN=libterminal.dll ./build.sh -g
```

44 changes: 22 additions & 22 deletions manifest.json
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
{
"addons": [
"addons" : [
{
"description": "An integrated terminal for lite-xl. *([screenshot](https://github.com/adamharrison/lite-xl-terminal/assets/1034518/eb8a72a0-ff61-4b95-b009-364ac2725f70))*",
"files": [
"id" : "terminal",
"description" : "An integrated terminal for pragtical.",
"version" : "1.06",
"path" : "plugins/terminal",
"files" : [
{
"arch": "x86_64-linux",
"checksum": "2d5a28f64299d930c5d77afeb92a44f8923e0ae1091e35ffa1b8c5338261a32f",
"url": "https://github.com/adamharrison/lite-xl-terminal/releases/download/v1.06/libterminal.x86_64-linux.so"
"url" : "https://github.com/pragtical/terminal/releases/download/latest/libterminal.x86_64-linux.so",
"arch" : "x86_64-linux",
"checksum" : "SKIP"
},
{
"arch": "aarch64-linux",
"checksum": "27e9af46c4f675327d3f2782beeade26bce2dccdf156416cd430ea9884683847",
"url": "https://github.com/adamharrison/lite-xl-terminal/releases/download/v1.06/libterminal.aarch64-linux.so"
"arch" : "aarch64-linux",
"url" : "https://github.com/pragtical/terminal/releases/download/latest/libterminal.aarch64-linux.so",
"checksum" : "SKIP"
},
{
"arch": "x86_64-darwin",
"checksum": "408e24b2d5d66e64f093cff329840b05616e3f118d6fe4bc3f6a492ba5cd4715",
"url": "https://github.com/adamharrison/lite-xl-terminal/releases/download/v1.06/libterminal.x86_64-darwin.so"
"url" : "https://github.com/pragtical/terminal/releases/download/latest/libterminal.x86_64-darwin.so",
"arch" : "x86_64-darwin",
"checksum" : "SKIP"
},
{
"arch": "aarch64-darwin",
"checksum": "fc2b9addf5d39feb94c7d981e84eb5c5a871c46aa961b47fd6c52d7afa5078d3",
"url": "https://github.com/adamharrison/lite-xl-terminal/releases/download/v1.06/libterminal.aarch64-darwin.so"
"url" : "https://github.com/pragtical/terminal/releases/download/latest/libterminal.aarch64-darwin.so",
"arch" : "aarch64-darwin",
"checksum" : "SKIP"
},
{
"arch": "x86_64-windows",
"checksum": "cbcc0687199f3bed113d6d416545b6cbe9b2a8f4541e81b7f6d0c11bd56b20cb",
"url": "https://github.com/adamharrison/lite-xl-terminal/releases/download/v1.06/libterminal.x86_64-windows.dll"
"url" : "https://github.com/pragtical/terminal/releases/download/latest/libterminal.x86_64-windows.dll",
"arch" : "x86_64-windows",
"checksum" : "SKIP"
}
],
"id": "terminal",
"path": "plugins/terminal",
"version": "1.06"
]
}
]
}
Loading

0 comments on commit ef2d270

Please sign in to comment.