Skip to content
Merged

m #3

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
855b8d2
kanrtipe-zi
Apr 11, 2026
2e95fdd
パネルデザイン
Apr 11, 2026
5dd7faa
メイン処理
Apr 11, 2026
ba1f5e0
Top
Apr 11, 2026
c817636
TopPage
Apr 11, 2026
1f279d1
テーブル名
Apr 11, 2026
78edf7d
定義
Apr 11, 2026
9ff4e21
触るな危険
Apr 11, 2026
5c08bd1
システム設定
Apr 11, 2026
56582f6
テーブル作成
Apr 11, 2026
273b380
返り値を返します
Apr 11, 2026
f6d728f
操作ができるように
Apr 11, 2026
427574f
tokio
Apr 11, 2026
4f94c98
cargo
Apr 11, 2026
23401ae
ランダムな数値を返します。
Apr 11, 2026
9d2ebd7
パスワードを生成
Apr 11, 2026
dbd9f10
ランダムパスワード生成
Apr 11, 2026
80ee972
passを返す
Apr 11, 2026
ec2517b
pas
Apr 11, 2026
abcd795
typo fix
Apr 11, 2026
763afdd
一時的に修正
Apr 11, 2026
1b48382
非同期処理を追加
Apr 11, 2026
9ccbc54
一時的にから関数に
Apr 11, 2026
361429f
未インストール
Apr 11, 2026
68f1752
;
Apr 11, 2026
fdc027c
警告文
Apr 11, 2026
662c5d5
ユーザー作成に必要なクレートを呼び出す
Apr 11, 2026
7841673
エラーハンドリング用のクレート
Apr 11, 2026
e03583e
Clientを追加
Apr 11, 2026
db8f903
v
Apr 11, 2026
33fc75b
OSを特定
Apr 11, 2026
b19d65b
os
Apr 11, 2026
b27ab7a
一時的に削除
Apr 11, 2026
113b464
d
Apr 11, 2026
e58a656
mo
Apr 11, 2026
ba6b80a
String
Apr 11, 2026
8578624
返り値
Apr 11, 2026
5386679
メモ
Apr 11, 2026
753318a
Apr 11, 2026
15d60b6
許可かどうか
Apr 11, 2026
63ca7e9
許可アウル
Apr 11, 2026
4b13ccf
許可するOS
Apr 11, 2026
f1ca108
出力
Apr 11, 2026
e469a9c
Linuxまで絞る
Apr 11, 2026
8bc4873
Aptが使えるか
Apr 11, 2026
3b8c39b
インストールを許可するか
Apr 11, 2026
580cf4d
if
Apr 11, 2026
259643a
d
Apr 11, 2026
bffac73
不明な場合falseを返す
Apr 11, 2026
73bb321
apt
Apr 11, 2026
ee0321e
Debian系か
Apr 11, 2026
cad41af
r
Apr 11, 2026
2ed9596
クォーテーションをなくしてみる
Apr 11, 2026
84ffb2a
revert
Apr 11, 2026
ee7eadc
デバッグ
Apr 11, 2026
76021e2
デフォルトtrueにする
Apr 11, 2026
4a3fd3a
メモを追加
Apr 11, 2026
46a5e67
updateではなくwhichで検知
Apr 11, 2026
7c3639e
デバッグを削除
Apr 11, 2026
a3eeb61
デバッグを削除
Apr 11, 2026
9899bd2
推奨されるif文の書き方に直します
Apr 11, 2026
30888c8
後から使う変数に_を追加
Apr 11, 2026
3dfae63
よくわからない関数を削除
Apr 11, 2026
93332a6
インストーラー作成中はAPIを削除
Apr 11, 2026
6724a29
API関連の関数をすべて削除位
Apr 11, 2026
4b71a3f
ユーザー名定義
Apr 11, 2026
ac277a9
システムユーザーを作成
Apr 11, 2026
f71165d
エラー
Apr 11, 2026
8a7729c
エラー時の処理
Apr 11, 2026
5c49532
FIX TYPO
Apr 11, 2026
b9267f6
コメントアウト
Apr 11, 2026
aba454d
コメントアウト
Apr 11, 2026
edfb8f2
/
Apr 11, 2026
6c0bf34
命名変更
Apr 11, 2026
dce4a1b
_を追加
Apr 11, 2026
ec35dea
fix
Apr 11, 2026
2295899
MEMを削除
Apr 11, 2026
15c84ab
d
Apr 11, 2026
5fae7a5
異常終了にしておきます
Apr 11, 2026
7096d5d
エラー内容を表示
Apr 11, 2026
a25191d
エラー内容は表示しないように変更
Apr 11, 2026
cfaf78d
エラーの返り値を削除
Apr 11, 2026
6e8759e
構文エラーが発生しない程度に
Apr 11, 2026
0f85319
インストーラー停止のガイダンスを表示
Apr 11, 2026
f6181a4
CLI用の依存関係
Apr 11, 2026
9d3d5e6
CLI用のクレートを呼び出す
Apr 11, 2026
e24a15f
インストール用の本命シェル
Apr 11, 2026
ce4618d
Apr 11, 2026
bbc2cf2
インストールに必要なコマンド
Apr 11, 2026
0b672d0
システムバージョン
Apr 11, 2026
c3c4b1a
Typo
Apr 11, 2026
b650463
cargoキャッシュ
Apr 11, 2026
e214627
typo fix
Apr 11, 2026
8b727a7
一旦CLIコードを削除
Apr 11, 2026
66d5dca
バージョン操作
Apr 11, 2026
ab0da71
cargoキャッシュ
Apr 11, 2026
a94bdc6
インストーラーの起動をifからmatch文に変更
dev-Kanade Apr 15, 2026
be433d1
構文エラーを修正
dev-Kanade Apr 15, 2026
9749285
不要になった開発用メモを削除
dev-Kanade Apr 15, 2026
1e1e158
インストーラーの強制停止
dev-Kanade Apr 15, 2026
d302db8
可読性をあげ津
dev-Kanade Apr 15, 2026
90d50bb
開発メモを追加
dev-Kanade Apr 15, 2026
ce6f38d
テーブル関連を追加
dev-Kanade Apr 15, 2026
0169ba8
仮出力
dev-Kanade Apr 15, 2026
7d8601f
s
dev-Kanade Apr 15, 2026
abf3f9a
関数名変更
dev-Kanade Apr 15, 2026
691e3e9
メモを追加
dev-Kanade Apr 22, 2026
a0874da
未実装
dev-Kanade Apr 22, 2026
805eb5e
メモ
dev-Kanade Apr 22, 2026
8ba6a60
f
dev-Kanade Apr 22, 2026
b8c1c41
不要になったメモを削除
dev-Kanade Apr 22, 2026
e8a79f3
ユーザー名追加
dev-Kanade Apr 22, 2026
4202d25
db操作に必要なクレートを呼び出し
dev-Kanade Apr 22, 2026
8b8e94b
メモ
dev-Kanade Apr 22, 2026
4e7ae43
db名を定義
dev-Kanade Apr 22, 2026
d1d97e9
名称変更
dev-Kanade Apr 22, 2026
520dd89
英語README
dev-Kanade Apr 22, 2026
0147c39
ユーザーが存在するかを確認するコード
dev-Kanade Apr 22, 2026
02948d5
システムユーザーが存在するかどうかを確認するコード
dev-Kanade Apr 22, 2026
5019171
ユーザーファイルを開く
dev-Kanade Apr 22, 2026
b51c996
ユーザーの存在確認
dev-Kanade Apr 22, 2026
6db166d
Rustパッケージ
dev-Kanade Apr 22, 2026
61e1ecf
ブランチを変更
dev-Kanade Apr 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Rust

on:
push:
branches: [ "Development" ]
pull_request:
branches: [ "Development" ]

env:
CARGO_TERM_COLOR: always

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
124 changes: 123 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "anthena"
version = "0.1.0"
version = "0.1.22"
edition = "2024"

[dependencies]
Expand All @@ -12,7 +12,8 @@ serde_json = "1"
tokio = { version = "1", features = ["full"] }
reqwest = { version = "0.12", features = ["json"] }
tokio-postgres = { version = "0.7", features=["with-chrono-0_4"]}

anyhow = "1.0"
clap = { version = "4.5",features = ["derive"]}
[profile.release]
opt-level = 3
lto = true
File renamed without changes.
Empty file added document/README/en.md
Empty file.
File renamed without changes.
2 changes: 2 additions & 0 deletions install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
sudo apt update
sudo apt install curl
16 changes: 16 additions & 0 deletions src/admin/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="ja">
<head>
<title>ANTHENA - 管理パネルトップ</title>
<meta charset="UTF-8">
<meta name="robots" content="noindex">
</head>
<body>
<header>
<h1>ようこそ</h1>
<p>ANTHENAの最高権限がある管理パネルです。</p>
<p>注意:このパネルにはANTHENAの最高権限が付与されているため、公開しないようにしてください。
</p>
</header>
</body>
</html>
6 changes: 6 additions & 0 deletions src/admin/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/*
ANTHENAの管理ページは時間があって
気が向いたら作ります。

まぁ、作れる人がいたら作ってくれるとありがたいです。
*/
5 changes: 5 additions & 0 deletions src/admin/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/*

未実装

*/
70 changes: 64 additions & 6 deletions src/installer/installer.rs
Original file line number Diff line number Diff line change
@@ -1,26 +1,45 @@
use std::process::Command;
use std::process;
use std::env;
use tokio;
use tokio_postgres::{NoTls,Error};
use std::fs;
use std::io::{self,BufRead};

const SYSTEM_USERNAME:&str = "ANTHENA";

pub fn installer(){
printwelcom();
chek_postgres();
let allow:bool = allow_install();
if allow == true {
printwelcom();
chek_postgres();
}else if allow ==false {
println!("お使いのデバイスはANTHENAをインストールする要件が不足しています。");
process::exit(0);
}else{
println!("[ERROR]ANTHENAインストール中にエラーが発生しました。");
process::exit(1);
}
}

/*
インストーラーを書く人へ
今はUbuntuしかサポートしていません。
今後別のディストリビューションへのサポートや別のOSへのサポートをする場合、OS検知と、サポート外OSへのインストール拒否を実装してください。
*/

fn printwelcom(){
let logo = r#"
╔═══════════════════════════════════╗
║ ║
║ A N T H E N A ║
║ ║
║ 認証・認可システム
║ 認証・認可システム ║
║ ║
║ Authentication & Auth. ║
║ ║
╚═══════════════════════════════════╝
"#;
"#;//絶対に手を加えないで

println!("{logo}");
println!("Welcom to ANTHENA Instaler!!");
Expand Down Expand Up @@ -48,10 +67,12 @@ fn chek_postgres(){
}
}


//ANTHENAのインストール各処理
fn setup(){
println!("[INF]システムのインストールを準備中です...");
super::user::create_system_user();
super::table::table(0);
super::table::create_table();
create_systemctl();
}

Expand Down Expand Up @@ -90,7 +111,7 @@ fn create_systemctl(){

let systemname:&str = "anthenaauth.service";
println!("[INF]System名:{systemname}");

//この下か上にsystemctlを書く処理を実装する
println!("[INF]サービスを読み込み中");
let _ = Command::new("sudo")
.args(["systemctl", "daemon-reload"])
Expand All @@ -106,4 +127,41 @@ fn create_systemctl(){
println!("[INF]インストールが完了しました。インストールウェザードを終了します。");
process::exit(0);

}

fn allow_install()->bool{
let os:&str = env::consts::OS;
if os == "linux" {
let apt_available: bool = Command::new("which")
.arg("apt")
.output()
.map(|output| output.status.success())
.unwrap_or(false);
apt_available
}else{
false
}
}

const DBNAME:&str = "";
fn create_db(){
println!("ここでDBに関する操作がおこなわれます。");
//既存のDBに接続する必要があるため、パスワードがあったらな
}


fn user_exists(username:&str)->io::Result<bool>{
let file = fs::File::Open("/etc/passwd")?;

let reader = io::BufReader::new(file);

for line in reader.lines(){
let line = line?;
if let Some(name) = line.split(":").next(){
if name == username {
return OK(true);
}
}
}
OK(false)
}
15 changes: 6 additions & 9 deletions src/installer/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,13 @@ pub fn installer(installertype:i32){
let _ = Command::new("sudo")
.args(["-l"])
.output();
if installertype == 0 {
super::installer::installer();
}else if installertype == 1 {
super::updater::update::update();
}else if installertype == 2 {
super::uninstaller::uninstall::uninstall();
}else{
eprintln!("インストーラーの起動に失敗しました。");
}

match installertype{
0 => super::installer::installer(),
1 => super::updater::update::update(),
2 => super::uninstaller::uninstall::uninstall(),
_ => println!("インストーラーの起動に失敗しました。"),
}
}

/* installertypeが0ならインストール,1ならアップデート,2ならアンインストールパッケージを実行します。*/
Loading
Loading