A shopping cart program written with Shellscript
Shell C
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
public_html/CART
README.md

README.md

『侵略型』シェルスクリプト製ショッピングカート「シェルショッカー1号男」

全世界70億の人間どもよ、ごきげんよう。 私は秘密結社シェルショッカー日本支部のリッチー大佐である。

これは何だ?

さて今回、我々が何を開発したかといえば、それはショッピングカートである。 我々が多数書き溜めた、シェルショッカーの掟をはじめとした同人誌、 同人グッスをネット販売し、世界征服を図るというわけだ。

詳しいことが知りたくば、「ななかInsidePress vol.5」という本を見てみるがいい。このショッピングカートが稼働している我々のサイトで買えるぞ。 →情報1情報2

「侵略型」とはどういうことか?

ショッピングカートアプリといえば、商品を紹介するページの生成まで面倒を見るものが殆どだ。 しかし、このアプリはそんな 商品紹介ページ生成機能をバッサリ捨てた。 全ての商品紹介ページがテンプレートにハマりはしない。 それにキャンペーンとかやりたかったらどうする? キャンペーン用のテンプレを1つ1つ用意するか? バカバカしい! プログラムが肥大化するだけだ。 そもそも、プログラマーの用意したテンプレで済むような商品紹介しかやらない店が流行るわけがない。

だから、

  • 商品紹介ページ作成は、HTMLやblogなどのCMSでやりたい放題勝手にやれ!
  • そこに「カゴに入れる」ボタンを付け、ショッピングサイトに改造してやる!

という戦略をとることにした。そうやって、ただのWebページを侵略していくのだ。 JavaScriptが自由に組めるページならどこでも改造できる。 その威力を知らしめるため、手始めに「はてなブログ」を改造した。 我々に侵略されたはてなブログを見てみるがいい。

世界征服の日も近いな。わっはっは!!!

必要なもの

なぁに、大したものは要らん。UNIX環境と少々の追加コマンド+Apacheがあれば動く。 レンタルサーバーなら大抵全部初めから揃っていることだろう。

必要なもの 備考
POSIX準拠シェル(/bin/sh)とコマンド群 FreeBSDやLinuxも勿論OK(BashやGNU拡張機能等は一切不要)
mktempコマンド (AIXには無かったが)大抵のOSにある(一応、ソースコードも付けた)
truncateコマンド (CentOS5には無いが)大抵のOSにある(一応、ソースコードも付けた)
flockまたはlockfコマンド MacOS Xには無いが大抵のOSにある(一応、ソースコードも付けた)
sendmailコマンド 主要なUNIX系OSには大抵入ってるが無ければインストールしておく
curlコマンド インストールしておく(主要Linuxディストリには大抵ある)
nkfコマンド インストールしておく(主要Linuxディストリには大抵ある)
Apache等のHTTPd あらかじめインストールしておく

ご覧のとおりLightweight Languages不要、DB不要、コンパイル不要。基本的にコピーして設定ファイル書くだけで動くぞ。

使い方

同人誌が一段落したのでこれからじっくり書くぞ。

ディレクトリー構成

あまりにも不親切だと苦情がきたので、ディレクトリー構成だけはメモしといてやる!

     CART/
     ├─ CGI/                ・WebブラウザーからCGI経由で呼び出されるプログラムの置き場所
     ├─ SHELL/              ・内部シェルコマンドとして呼び出されるプログラムの置き場所
     │                         - 例えば、上記CGIから呼ばれるコマンド
     │                         - 例えば、cronから定期的に呼ばれるバッチコマンド
     ├─ CONFIG/             ・各種設定ファイル置き場
     │   ├─ COMMON.SHLIB     - 全体に関わる設定ファイル
     │   ├─ TRADING.SHLIB    - 各商品の現在の在庫数データ格納場所
     │   ├─ PAYPAL.SHLIB     - PayPalアカウントに関する設定ファイル
     │   :      :
     │   └─ ALLOWED_ORIGIN_LIST.TXT
     │                         - 別サイトへ支店を出す為のドメイン登録用ファイル
     ├─ DATA/               ・商品マスターデータ等の置き場
     │   ├─ STOCK/           - 各商品の現在の在庫数データ格納場所
     │   └─ ORDERID/         - 注文IDの通し番号格納場所
     ├─ HTML/               ・静的HTMLファイル置き場
     │   │                    (一応用意してるが、べつにこの中に置かねばならぬ訳ではない)
     │   └─ JS/
     │        └─ CLIENTBASE.JS
     │                         - Ajax制御用等の独自JavaScript関数群
     ├─ INPUT               ・CGIスクリプトが生成する各種データの置き場
     │   ├─ SESSION/         - HTTPセッションファイル置き場
     │   └─ ORDER/           - 注文票データファイル置き場
     │                           (PayPal/銀行振込や、注文/支払済/キャンセルで分かれてる)
     ├─ TEMPLATE.HTML/      ・本システムのCGIが生成するWebページのテンプレート
     │                         - お客様注文画面や決済画面など
     ├─ TEMPLATE.MAIL/      ・本システムのCGIが送信するメールのテンプレート
     │                         - 注文内容確認メールや決済案内メールなど
     ├─ TOOL/               ・シェルスクリプトアプリ開発を助けるコマンド群
     │                         ("Open usp Tukubai"という名で公開されているもの)
     │                         (ただしそれのシェルスクリプトによるクローン版)
     ├─ UTL/                ・その他、本システムで利用する汎用的なコマンド群
     │                         (やはり基本的にシェルスクリプトで書かれている)
     └─ LOG/                ・CGI,SHELL内スクリプト動作ログファイル置き場
                                - YYYY/MMDD/ などで生成場所が分かれている

ライセンスとか

我々の思想で人間どもを洗脳し、世界征服が目的であるから、このプログラムそのもので金儲けするつもりはない。 下記の一部のファイルを除き、 パブリックドメイン とすることを宣言してやる。

販売に使うのはもちろん、何かに組み込もうが、改造しようが、これ自身を販売して金儲けしようが 一向に構わん。勝手にするがいい。 しかし、その時点で既にお前たちは 我々に洗脳されたことを意味する のだ。わっはっは!!!

パブリックドメインでないもの

  • TOOLの中にあるクローンコマンドのオリジナル( https://uec.usp-lab.com/ にあるもの)……MITライセンス
  • UTL/SRCの中身……BSDライセンス

License of the software (in English)

We declare that the software "ShellSocker 1" is PUBLIC DOMAIN (CC0) except the following files. You can use this for any purpose, of cause for saling any items.

But if you did that, you have been already brainwashed by us! Ha, Ha, Ha!!!

exceptional files (NOT Public Domain)

  • the origin (which are at https://uec.usp-lab.com/) of the clone commands, which are in TOOL/ (MIT License)
  • source files in UTL/SRC (BSD License)