Add action to open licenses file

This commit is contained in:
Mikayla Maki 2023-01-13 14:53:44 -08:00
parent 4609be20de
commit 9d58032064
7 changed files with 40 additions and 35 deletions

1
assets/licenses.md Normal file
View file

@ -0,0 +1 @@
TWSTS

View file

@ -233,6 +233,7 @@ pub fn init(app_state: Arc<AppState>, cx: &mut MutableAppContext) {
workspace.toggle_sidebar(SidebarSide::Right, cx); workspace.toggle_sidebar(SidebarSide::Right, cx);
}); });
cx.add_action(Workspace::activate_pane_at_index); cx.add_action(Workspace::activate_pane_at_index);
cx.add_action(Workspace::split_pane_with_item); cx.add_action(Workspace::split_pane_with_item);
cx.add_action(Workspace::split_pane_with_project_entry); cx.add_action(Workspace::split_pane_with_project_entry);

View file

@ -62,6 +62,7 @@ actions!(
DebugElements, DebugElements,
OpenSettings, OpenSettings,
OpenLog, OpenLog,
OpenLicenses,
OpenTelemetryLog, OpenTelemetryLog,
OpenKeymap, OpenKeymap,
OpenDefaultSettings, OpenDefaultSettings,
@ -184,6 +185,19 @@ pub fn init(app_state: &Arc<AppState>, cx: &mut gpui::MutableAppContext) {
open_log_file(workspace, app_state.clone(), cx); open_log_file(workspace, app_state.clone(), cx);
} }
}); });
cx.add_action({
let app_state = app_state.clone();
move |workspace: &mut Workspace, _: &OpenLicenses, cx: &mut ViewContext<Workspace>| {
open_bundled_file(
workspace,
app_state.clone(),
"licenses.md",
"Open Source License Attribution",
"Markdown",
cx,
);
}
});
cx.add_action({ cx.add_action({
let app_state = app_state.clone(); let app_state = app_state.clone();
move |workspace: &mut Workspace, _: &OpenTelemetryLog, cx: &mut ViewContext<Workspace>| { move |workspace: &mut Workspace, _: &OpenTelemetryLog, cx: &mut ViewContext<Workspace>| {
@ -199,11 +213,12 @@ pub fn init(app_state: &Arc<AppState>, cx: &mut gpui::MutableAppContext) {
cx.add_action({ cx.add_action({
let app_state = app_state.clone(); let app_state = app_state.clone();
move |workspace: &mut Workspace, _: &OpenDefaultKeymap, cx: &mut ViewContext<Workspace>| { move |workspace: &mut Workspace, _: &OpenDefaultKeymap, cx: &mut ViewContext<Workspace>| {
open_bundled_config_file( open_bundled_file(
workspace, workspace,
app_state.clone(), app_state.clone(),
"keymaps/default.json", "keymaps/default.json",
"Default Key Bindings", "Default Key Bindings",
"JSON",
cx, cx,
); );
} }
@ -213,11 +228,12 @@ pub fn init(app_state: &Arc<AppState>, cx: &mut gpui::MutableAppContext) {
move |workspace: &mut Workspace, move |workspace: &mut Workspace,
_: &OpenDefaultSettings, _: &OpenDefaultSettings,
cx: &mut ViewContext<Workspace>| { cx: &mut ViewContext<Workspace>| {
open_bundled_config_file( open_bundled_file(
workspace, workspace,
app_state.clone(), app_state.clone(),
"settings/default.json", "settings/default.json",
"Default Settings", "Default Settings",
"JSON",
cx, cx,
); );
} }
@ -656,11 +672,12 @@ fn open_telemetry_log_file(
}).detach(); }).detach();
} }
fn open_bundled_config_file( fn open_bundled_file(
workspace: &mut Workspace, workspace: &mut Workspace,
app_state: Arc<AppState>, app_state: Arc<AppState>,
asset_path: &'static str, asset_path: &'static str,
title: &'static str, title: &'static str,
language: &'static str,
cx: &mut ViewContext<Workspace>, cx: &mut ViewContext<Workspace>,
) { ) {
workspace workspace
@ -670,7 +687,7 @@ fn open_bundled_config_file(
let text = Assets::get(asset_path).unwrap().data; let text = Assets::get(asset_path).unwrap().data;
let text = str::from_utf8(text.as_ref()).unwrap(); let text = str::from_utf8(text.as_ref()).unwrap();
project project
.create_buffer(text, project.languages().get_language("JSON"), cx) .create_buffer(text, project.languages().get_language(language), cx)
.expect("creating buffers on a local workspace always succeeds") .expect("creating buffers on a local workspace always succeeds")
}); });
let buffer = let buffer =

View file

@ -1 +0,0 @@
DATA DATA DATA

View file

@ -1 +0,0 @@
Test test

View file

@ -1,29 +0,0 @@
#!/usr/bin/env node
const fs = require('fs');
const file_name = (path) => "./licenses/".concat(path);
const writeFile = (path, data) => {
fs.writeFile(file_name(path), data, (err) => {
if (err) throw err;
console.log("Saved file")
});
}
main();
async function main() {
console.log("Here!");
writeFile("test.tx", "DATA DATA DATA")
// Next steps:
// 1a. Add wiring in Zed to check for a licenses markdown file
// 1b. Add wiring in Zed.dev for builds to publish licenses alongside releases as well as licenses for Zed.dev itself
// 2. Figure out how to run those commands and get the license text for each MIT and Apache licensed software
// 3. Add in the configuration file:
// a. and refactor this script to have types of licenses
// b. add callback handlers for each type,
// c. check if the handler succeeds
}

17
script/collect-licenses.rs Executable file
View file

@ -0,0 +1,17 @@
//usr/bin/env rustc $0 -o a.out && ./a.out ; rm -f ./a.out ; exit
fn main() {
println!("Hello world");
}
// Next steps:
// 1a. Add wiring in Zed to check for a licenses markdown file
// 1b. Add wiring in Zed.dev for builds to publish licenses alongside releases as well as licenses for Zed.dev itself
// (e.g. https://github.com/zed-industries/zed.dev/tree/main/content/licenses)
// 2. Figure out how to run those commands and get the license text for each MIT and Apache licensed software
// 3. Add in the configuration file:
// a. and refactor this script to have types of licenses
// b. add callback handlers for each type,
// c. check if the handler succeeds