初期設定
このコミットが含まれているのは:
コミット
f9cf87429d
2
Makefile
2
Makefile
@ -3,7 +3,7 @@ VERSION=1.0.0
|
||||
# Linux、Haiku、かIllumos = /usr、FreeBSDかOpenBSD = /usr/local、NetBSD = /usr/pkg
|
||||
PREFIX=/usr
|
||||
CC=cc
|
||||
FILES=main.c showpass.c yankpass.c addpass.c delpass.c listpass.c genpass.c
|
||||
FILES=main.c showpass.c yankpass.c addpass.c delpass.c listpass.c genpass.c initpass.c
|
||||
CFLAGS=-Wall -Wextra -g
|
||||
LDFLAGS=-lgpgme
|
||||
|
||||
|
@ -1,6 +1,9 @@
|
||||
#ifndef ADDPASS_H
|
||||
#define ADDPASS_H
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
||||
int mkdir_r(const char *path, mode_t mode);
|
||||
void addpass(char* file);
|
||||
|
||||
#endif
|
||||
|
50
initpass.c
ノーマルファイル
50
initpass.c
ノーマルファイル
@ -0,0 +1,50 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/stat.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "initpass.h"
|
||||
#include "addpass.h"
|
||||
|
||||
void initpass(char* gpgid) {
|
||||
char* homedir = getenv("HOME");
|
||||
if (homedir == NULL) {
|
||||
perror("ホームディレクトリを受取に失敗。");
|
||||
return;
|
||||
}
|
||||
|
||||
char* basedir = "/.local/share/sp/";
|
||||
char dirpath[256];
|
||||
snprintf(dirpath, sizeof(dirpath), "%s%s", homedir, basedir);
|
||||
|
||||
if (mkdir_r(dirpath, 0755) != 0 && errno != EEXIST) {
|
||||
perror("ディレクトリを作成に失敗。");
|
||||
return;
|
||||
}
|
||||
|
||||
char gpgidpath[512];
|
||||
snprintf(gpgidpath, sizeof(gpgidpath), "%s/.gpg-id", dirpath);
|
||||
|
||||
struct stat statbuf;
|
||||
if (stat(gpgidpath, &statbuf) == 0) {
|
||||
fprintf(stderr, ".gpg-idファイルは既に存在します。\n");
|
||||
return;
|
||||
}
|
||||
|
||||
FILE* gpgidfile = fopen(gpgidpath, "w");
|
||||
if (gpgidfile == NULL) {
|
||||
perror(".gpg-idファイルを書き込めません。");
|
||||
fclose(gpgidfile);
|
||||
return;
|
||||
}
|
||||
|
||||
if (fputs(gpgid, gpgidfile) == EOF) {
|
||||
fprintf(stderr, ".gpg-idファイルへの書き込みに失敗しました。\n");
|
||||
fclose(gpgidfile);
|
||||
return;
|
||||
}
|
||||
|
||||
fclose(gpgidfile);
|
||||
printf("初期設定に完了しました。");
|
||||
}
|
6
initpass.h
ノーマルファイル
6
initpass.h
ノーマルファイル
@ -0,0 +1,6 @@
|
||||
#ifndef INITPASS_H
|
||||
#define INITPASS_H
|
||||
|
||||
void initpass(char* gpgid);
|
||||
|
||||
#endif
|
6
main.c
6
main.c
@ -5,7 +5,7 @@
|
||||
|
||||
#include <gpgme.h>
|
||||
|
||||
void initpass(char* gpgid);
|
||||
#include "initpass.h"
|
||||
#include "showpass.h"
|
||||
#include "yankpass.h"
|
||||
#include "listpass.h"
|
||||
@ -20,7 +20,7 @@ const char* version = "1.0.0";
|
||||
|
||||
void helpme() {
|
||||
printf("使い方:\n");
|
||||
/* printf("%s -i <gpg-id> :GPGと使ってパスワードストレージを初期設定\n", sofname); */
|
||||
printf("%s -i <gpg-id> :GPGと使ってパスワードストレージを初期設定\n", sofname);
|
||||
printf("%s -s <パスワード名> :パスワードを表示\n", sofname);
|
||||
printf("%s -y <パスワード名> :パスワードを表示せずクリップボードにコピーする\n", sofname);
|
||||
printf("%s -l :パスワード一覧を表示\n", sofname);
|
||||
@ -38,7 +38,7 @@ int main (int argc, char* argv[]) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (argc == 3 && strcmp(argv[1], "-i") == 0) printf("TODO: 初期設定\n");
|
||||
if (argc == 3 && strcmp(argv[1], "-i") == 0) initpass(argv[2]);
|
||||
else if (argc == 3 && strcmp(argv[1], "-s") == 0) showpass(argv[2]);
|
||||
else if (argc == 3 && strcmp(argv[1], "-y") == 0) yankpass(argv[2]);
|
||||
else if (argc == 2 && strcmp(argv[1], "-l") == 0) {
|
||||
|
@ -87,7 +87,6 @@ void showpass(char* file) {
|
||||
buffer[read_bytes] = '\0';
|
||||
printf("%s", buffer);
|
||||
}
|
||||
puts("");
|
||||
|
||||
// 掃除
|
||||
clean_up(ctx, in, out, gpgfile, gpgpath);
|
||||
|
読み込み中…
新しいイシューから参照
ユーザーをブロックする